主题:[讨论]学C的朋友进来看一下,这个程序错在哪
purple808
[专家分:0] 发布于 2007-12-18 09:16:00
我是学C的新手,对照作业写了一个求两个数最大公约数的程序,可是不知错在哪,希望学过的朋友指点一二,不甚感激!
main()
{
int a,b,c;
scanf("%d%d",&a,&b);
if(a>b) c=b;
else c=a;
for(;c>=1;c--)
{
if(a%c==0&&b%c==0)
{
printf("%c\n",c);
break;
}
}
}
回复列表 (共9个回复)
沙发
purple808 [专家分:0] 发布于 2007-12-18 09:46:00
找到了,%c-->%d,低级!
板凳
6429685 [专家分:190] 发布于 2007-12-21 22:45:00
哎~写的又点乱,而且for语句的格式用错了,c没有赋值,有没有输出的值啊~
3 楼
yygysgh [专家分:10] 发布于 2008-01-03 15:11:00
格式我看没错!只要以十进制数输出就行了
4 楼
sead_312 [专家分:0] 发布于 2008-01-07 14:45:00
晕啊,怎么看也看不懂.是要好好学习了
5 楼
shawsmith [专家分:10] 发布于 2008-01-12 20:46:00
%c改为%d试试看
6 楼
stone5751 [专家分:0] 发布于 2008-02-12 02:06:00
C赋值了,你再仔细看看[em13]
7 楼
ashinger [专家分:50] 发布于 2008-02-13 11:51:00
用while 语句试试.
8 楼
tbve涛 [专家分:0] 发布于 2008-02-15 17:20:00
为什么if语句做了判断却没有值?没有第二步了,为什么要做这个判断?
9 楼
jl114298030 [专家分:0] 发布于 2008-02-17 15:43:00
if(){}
()后面跟的{}是复合语句,正如你说的有第2步,“第2步”就是{}里面的
所以说这个判断是必要的 只有满足条件a%c==0&&b%c==0为真的情况下
才输出正确的公约数值
程序其他没问题,改成%d 输出就行了
但是你的格式太差,主函数最好这么写int main(void),你那种写法大部分编译器都会报错
我来回复