当前位置: 代码迷 >> C语言 >> 最大公约数,为什么不行?
  详细解决方案

最大公约数,为什么不行?

热度:363   发布时间:2006-02-22 14:41:00.0
最大公约数,为什么不行?
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int a,b,c,d;
scanf("%d%d\n",&a,&b);
for(c=1;c<=a&&c<=b;c=c+1)
{if (a%c==0&&b%c==0) d=c;}
printf("%d",d);
}
搜索更多相关的解决方案: 最大公约数  

----------------解决方案--------------------------------------------------------
把c=2开始。1 的话本来就是任何数公约数
----------------解决方案--------------------------------------------------------

还是不行啊


----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{
int a,b,c,d;
scanf("%d%d\n",&a,&b);
for(c=1;c<=a&&c<=b;c++);-----------c++和C=C+1是不等价的
{if (a%c==0&&b%c==0) d=c;}
printf("%d",d);

----------------解决方案--------------------------------------------------------

可是输入参数 输出结果却是1,比如10和5


----------------解决方案--------------------------------------------------------
不会吧,我是菜鸟,我觉得改成c++就可以了,可为什么不行
----------------解决方案--------------------------------------------------------
知道了
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int a,b,c,d;
scanf("%d%d\n",&a,&b);
for(c=1;(c<=a&&c<=b);c=c+1) /*运算顺序的问题*/
{if (a%c==0&&b%c==0) d=c;}
printf("%d",d);
}

----------------解决方案--------------------------------------------------------
哦,还有把c=c+1改为c++[em03忘了改了
----------------解决方案--------------------------------------------------------

楼上的诸位有一点说的不对,c=c+1和c++是等价的
我只改了一个小地方,就编译通过了。(我是在wintc下编译通过的)
#include "stdio.h"
main()
{
int a,b,c,d;
scanf("%d %d",&a,&b);
for(c=1;c<=a&&c<=b;c=c+1)
{if (a%c==0&&b%c==0) d=c;}
printf("%d",d);
getch();
}
输入时,两个数以空格为间隔符。


----------------解决方案--------------------------------------------------------
还是老毛病
----------------解决方案--------------------------------------------------------
  相关解决方案