c语言问题求公约数

来源:百度知道 编辑:UC知道 时间:2024/05/31 01:08:06
#include <stdio.h>

main()
{
int a,b,c;
scanf("%d,%d",a,b);
if (a<b)
c=a,a=b,b=c;
do
{
c=a%b,a=b,b=c;
}
while (c!=0);
printf("%d",a);
}
为什么建立成.exe文件后说什么错误
请复制后试试

scanf("%d,%d",a,b);
==>
scanf("%d,%d",&a,&b);

数据输入为:43,23 //中间","分隔

你输入的时候没加取址符scanf("%d,%d",&a,&b);
而且这个程序没有循环,所以它运行结束后,你可能看不到结果,所以在后面应该加2个getchar();

输入语句scanf中的变量前要加一个地址符。
if下面的语句应该写成
if(a<b)
{c=a;a=b;b=c;}
用大括号括起来,里面不应该是逗号应该是分号。
do循环里也是一样把c=a%b,a=b,b=c; 改成
c=a%b;a=b;b=c;
别的没什么问题了
注意C中每条语是是以分号(;)结束的。