私はプログラミングが初めてで、学生です。
再帰関数を使用して 2 つの数値の GCD を計算するプログラムを作成しましたが、正しい答えを返すものもあれば、間違った答えを返すものもあります。問題を特定するのを手伝ってください:
#include<stdio.h>
#include<conio.h>
int gcd(int,int,int)
int main(){
int a,b,x,val;
printf("Enter the first number: ");
scanf("%d",&a);
printf("Enter the second number: ");
scanf("%d",&b);
if(a>b)
x=b;
else
x=a;
val=gcd(a,b,x);
printf("The GCD of the two numbers you entered is:%d",val);
getch();
return 0;
}
int gcd(int a,int b,int x){
if(a%x==0){
if (b%x==0)
return x;
}else
return gcd(a,b,x-1);
}
たとえば、最初の数字が 69、2 番目の数字が 65 の場合、プログラムは間違った答えを返しますが、それ以外の場合は不思議なことに正しい答えを返します。
誰かがここで私を助けてくれますか?