プログラムは非常に簡単です。出力として最大公約数を与えます。アルゴリズムを確認しました。コンパイラはエラーは発生しませんが、それでも出力を生成しません。コードはコンパイル時にエラーを表示しませんが、出力は表示されません
#include<conio.h>
#include <stdio.h>
int gcd(int ,int);
int main()
{
int a,b,j;
printf("enter two numbers");
scanf("%d\n",&a);
scanf("%d\n",&b);
j=gcd(a,b);
printf("gcd is %d",j);
getch();
return 0;
}
int gcd(int x, int y)
{
int temp,c;
if(x<y)
{
temp=x;
x=y;
y=temp;
}
if(y<=x&&(x%y==0))
return y;
else
{ temp=x%y;
c=gcd(y,temp);
return c;
}
}
にFYI:通常、あなたが持っている場合は、 'x>のy'あなたはそのための特別なケースを必要としないので、エントリには、最初の反復(再帰呼び出し)は、問題を修正します。また、一般に、テール再帰アルゴリズムではなく反復アルゴリズムを使用します。 (あなたはGCD(34533,1279)== 1279かそれとも私ですか?)また、 'scanf("%d \ n "、&var)'演算はエラーをチェックし、最後に '\ n'入力が終了する前に2番目の数字の後に空白以外の文字を入力する必要があることを意味します。 –
@ Karanv.10111については、 'scanf'と' \ n'を参照してください。この質問はclc FAQ http://c-faq.com/stdio/scanfhang.html – ouah