为什么输出是这样?gcd(12 12803)=1

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:52:09
#include<stdio.h>
int gcd(int a,int b)
{
int m,n;
if(a%b==0)
return b;
else
{
m=b;
n=a%b;
return gcd(m,n);
}
}
main()
{
int m,n;
printf("Input two integer:");
scanf("%d,%d",&m,&n);
printf("gcd(%d,%d)=%d\n",m,n,gcd(m,n));
getch();
}

你这句话有问题
scanf("%d,%d",&m,&n);
应该是
scanf("%d%d",&m,&n);
那个逗号画蛇添足了

这里面的gcd(12,12803)是指求12和12803的最大公约数,而他们的最大公约数就是1.你看看输入12和18结果是不是6.我已经帮你试过了
下面那位说的那个逗号问题只是决定你输入的方式而已,没有错的