主题:[讨论]求教最大公约数问题
在看《C语言开发入门与编程实践》学C,刚学到第4章流程控制,被课后题里一个最大公约数的问题困住了。
下面是我用VC++6.0写的初步的一个东西:
#include<stdio.h>
int main()
{
int a,b,i;
printf("只能输入正整数:");
scanf("%d,%d\n",&a,&b);
i=a<=b?a:b;
for(;i>=1;i--)
{
if(a%i==0&&b%i==0)
break;
}
printf("%d\n",i);
return 0;
}
这个程序可以运行,但是在输入两个正整数a与b时(比如4和6),需要在6后面再输入一个或者多个字符(如d或者vvv等),再回车才会输出正确答案2。
请教诸位高手这是为什么呀?
[img]http://ss1.sinaimg.cn/bmiddle/406636d2g8bdb687bdb70&690[/img]
下面是我用VC++6.0写的初步的一个东西:
#include<stdio.h>
int main()
{
int a,b,i;
printf("只能输入正整数:");
scanf("%d,%d\n",&a,&b);
i=a<=b?a:b;
for(;i>=1;i--)
{
if(a%i==0&&b%i==0)
break;
}
printf("%d\n",i);
return 0;
}
这个程序可以运行,但是在输入两个正整数a与b时(比如4和6),需要在6后面再输入一个或者多个字符(如d或者vvv等),再回车才会输出正确答案2。
请教诸位高手这是为什么呀?
[img]http://ss1.sinaimg.cn/bmiddle/406636d2g8bdb687bdb70&690[/img]