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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

1860閲覧

c言語 無限ループとbreak文

yuutakunn

総合スコア2

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2020/07/15 08:33

編集2020/07/15 09:26

コード

c言語

1無限ループとbreak文でユークリッドの互除法を作成したい 2このままだと最大公約数は表示されません。 3どこが間違っているのでしょうかお願いします。 4 5> 引用テキスト#include <stdio.h> 6 7#include <stdio.h> 8main() 9{ 10 int a, b, r, temp; 11 12 while( 1 ) { 13 printf( "2つの自然数を指定してください : " ); 14 if( scanf( "%d, %d", &a, &b ) != 2 ) break; 15 if( a < b ) { temp = a; a = b; b = temp; } 16 if( b < 1 ) continue; 17 18 //ユークリッドの互除法により最大公約数を求める 19 while( (r = a % b) != 0 ) { 20 a = b; 21 b = r; 22 } 23 printf( "最大公約数は%d\n", b ); 24 } 25}

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

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

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

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

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

kazuma-s

2020/07/15 10:04

元のコードに対して回答されているのに、その元のコードを変更したら、 あとから読んだ場合に回答が意味不明になります。 修正コードは、追記にしてください。それから ```C #include <stdio.h> ... } ``` のようにソースコードを ```C と ``` で、はさんでください。
yuutakunn

2020/07/15 14:06

わかりましたすみません
guest

回答1

0

ベストアンサー

C

1while(1) 2{ 3r = p % q; 4if(r==0) 5break; 6}

たまたま最初に割り切れればいいのですが、そうでなければループを何度回ってもpqも変化しないので、rは同じ値になり続けるだけで、無限ループします。

投稿2020/07/15 08:34

maisumakun

総合スコア146018

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

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

yuutakunn

2020/07/15 08:48

このままでは最大公約数が表示されません。
yuutakunn

2020/07/15 08:53

どうしたらよいでしょうか
maisumakun

2020/07/15 08:54

ループを回るにつれて、割り算する対象を変えていく必要があります。
yuutakunn

2020/07/15 08:57

対象を変えるには何を使えばよろしいですか
momon-ga

2020/07/15 09:18

yuutakunnさんは、ユークリッドの互除法というのが、どのようなものか知らないのですか?
momon-ga

2020/07/15 09:22 編集

では、割り切れない場合、余りでどのような計算をするか、わかりますよね? それらをpとqに設定すればいいですよ<最初にaとbを設定したように
ohys

2020/07/15 09:22

c言語 ユークリッドの互除法 で検索しましょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問