ページ 11

adj

Posted: 2017年7月03日(月) 13:28
by c言語
c言語の3つの自然数a,b,cの最大公約数を考えたとき、aとbの最大公約数をdとするならば、cとdの最大公約数がa.b,cの最大公約数となる。以下のプログラムを利用してキーボードから入力した3つの自然数の最大公約数を表示するプログラムをおしえてください
以下のプログラムのmain関数内だけを修正で作成お願いします
#include <stdio.h>

int gcd(int a,int b){
int r;
/* ユークリッドの互除法 */
r = a % b;
while(r!=0){
a = b;
b = r;
r = a % b;
}
return b;
}

void main(void)
{

int a, b,tmp;

printf("2つの自然数を入力してください。\n");
printf("1つ目の自然数 = ");
scanf("%d", &a);
printf("2つ目の自然数 = ");
scanf("%d", &b);

/* 自然数 a > b を確認・入替 */
if(a<b){
tmp = a;
a = b;
b = tmp;
}
printf("最大公約数は%dです\n", gcd(a, b));
}

Re: adj

Posted: 2017年7月03日(月) 14:08
by purin52002
こんにちは

作成お願いします、とのことですが
ここは質問掲示板であって、作成依頼掲示板じゃないので私は作成しません^p^
(中には作成してくれる人もいるかも?)

何がわからないのかわからないのでどう説明すればいいのかもわかりませんが、
以下のような処理をすればいいような気がします。
  1. 3つの自然数 a,b,c を入力
  2. a,b の大きさを比較、b のほうが大きかったら a と入れ替える
  3. d に gcd(a,b) の結果を代入
  4. c,d の大きさを比較、d のほうが大きかったら c と入れ替える
  5. gcd(c,d) の結果を表示
そんなに難しいプログラムではないと思うので頑張って自分で完成させてみてください^^