2数の整数の最大公約数を再帰呼び出しを用いて表示する関数を作りたいです、このようなプログラムを書いたのですが、2数を入力した段階で操作が停止してしまいます。どこが間違っているのでしょうか。
c
1#include <stdio.h> 2int Max(int u, int v); 3int Max(int u, int v) 4{ 5 int q, r = 0; 6 if (u > v) { 7 q = u / v; 8 r = u % v; 9 } 10 else { 11 q = v / u; 12 r = v % u; 13 } 14 15 if (r = 0) { 16 return printf("%d\n", v); 17 } 18 else { 19 int a, b = 0; 20 a = v; 21 b = r; 22 return Max(a, b); 23 } 24} 25int main(void) 26{ 27 int U, V, M = 0; 28 printf("Calculate GCM of two integers.\n"); 29 printf("Please input two integers.\n"); 30 scanf("%d", &U); 31 scanf("%d", &V); 32 M = Max(U, V); 33 printf("GCM = %d\n", M); 34 35 return 0; 36}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/28 11:40
2018/11/28 11:47
2018/11/28 11:49
2018/11/28 12:21
2018/11/28 13:29
2018/11/28 13:35