回 帖 发 新 帖 刷新版面

主题:[讨论]求教最大公约数问题

在看《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]

回复列表 (共2个回复)

沙发

scanf("%d,%d\n",&a,&b); 为什么有个"\n"

板凳

原来如此!谢谢高手了!本来以为scanf命令结束后不能自动换行的,没想到画蛇添足了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册