質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

723閲覧

PHPで最大公約数を出したい。

hatimaki

総合スコア27

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/07/28 09:47

編集2017/07/28 13:02

PHPで最大公約数を出すものを作りたく、下記のようなソースを書いたのですが、

<!DOCTYPE html> <html lang="ja"> <meta charset=utf-8> <body> <form method="post" action="php7-mondai5.php"> X:<input type="text" name="suzi1" size=5><br> Y:<input type="text" name="suzi2" size=5><br> <input type="submit" value="最大公約数"> </form> <?php $suzi1=$_POST["suzi1"]; $suzi2=$_POST["suzi2"]; $amari=$suzi1%$suzi2; while($amari>0){ $suzi1=$suzi2; $suzi2=$amari; $amari=$suzi1%$suzi2; if($amari=0){ print("最大公約数は".$suzi2."です。"); break; } } ?> </body> </html>

いろいろとやってみたのですがうまく表示されなく、どう改良をくわえたらよいのか初心者なのでよくわからず困っております。

アドバイスをお願いします。

ちなみにこれはユークリッドの互除法を使っています。

そして、このようなエラーが出ます。

Parse error: syntax error, unexpected '$suzi1' (T_VARIABLE) in /home/websaka/websaka.php.xdomain.jp/public_html/php7-mondai5-3.php on line 12

これはどういうことなのでしょうか? 解決方法があればそれも教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ahodana

2017/07/28 09:57

方向性はあっているが計算が間違えているな
hatimaki

2017/07/28 10:47

どのあたりが間違っているか教えていただけるとありがたいです。
guest

回答4

0

if($amari=0)と、比較じゃなくて代入になってます。

あと、最初から割り切れているとwhileの中に入らないので、printするのはwhileを抜けた後が良いです。

投稿2017/07/28 10:01

otn

総合スコア84529

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatimaki

2017/07/28 13:24

ご指摘ありがとうございます。修正してみます。
guest

0

以下のように修正して改善されました。ありがとうございました。

<!DOCTYPE html> <html lang="ja"> <meta charset=utf-8> <body> <form method="post" action="php7-mondai5-4.php"> 数字1:<input type="text" name="suzi1" size=5><br> 数字2:<input type="text" name="suzi2" size=5><br> <input type="submit" value="最大公約数"> </form> <?php $suzi1=$_POST["suzi1"]; $suzi2=$_POST["suzi2"]; $nyuryoku1=$suzi1; $nyuryoku2=$suzi2; if($suzi2>0){ while($suzi2!==0){ $amari=$suzi1%$suzi2; $suzi1=$suzi2; $suzi2=$amari; } } print($nyuryoku1."と".$nyuryoku2."の最大公約数は「".$suzi1."」です。"); ?> </body> </html>

投稿2017/08/26 08:36

hatimaki

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

うまく表示されなく

⇒もう解決済かもしれませんが、

PHP

1if($amari=0){

ではなく

PHP

1if($amari==0){

です。

おまけ

訂正前)

PHP

1 X<input type="text" name="suzi1" size=5><br> 2 Y<input type="text" name="suzi2" size=5><br>

訂正後)

PHP

1 X:<input type="text" name="suzi1" size=5 value="<?php echo $_POST['suzi1']; ?>"><br> 2 Y:<input type="text" name="suzi2" size=5 value="<?php echo $_POST['suzi2']; ?>"><br>

とやると、サクサクテストできます。

投稿2017/07/31 14:47

tomari_perform

総合スコア760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Parse error: syntax error, unexpected '$a' (T_VARIABLE) in /home/websaka/websaka.php.xdomain.jp/public_html/php7-mondai5-3.php on line 12

これの理由はわかりません(記述されてるソースに$aがない・・・)が
ユークリッドの互除法の計算と違ってます。

https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%AF%E3%83%AA%E3%83%83%E3%83%89%E3%81%AE%E4%BA%92%E9%99%A4%E6%B3%95
手続き的記述2.
のところを理解して修正すればうまくいくかと

投稿2017/07/28 12:06

rururu3

総合スコア5545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatimaki

2017/07/28 12:59

line 12に該当するところが「$suzi1=$_POST["suzi1"];」です。 ちなみに「'$a' 」のところは「'$suzi' 」でした。すいません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問