C语言书上说了下面这个源程序是有错误的,可为什么我输入到我安装的VB6.0里,就没错误了 10
源程序:#include<stdio.h>voidmain(){inta,b,r,t;scanf("%d,%d,%d",&a,&b);if(a<b){t=a;a=b;b=...
源程序:
#include<stdio.h>
void main()
{
int a,b,r,t;
scanf("%d,%d,%d",&a,&b);
if(a<b)
{t=a;a=b;b=t;}
r=a%b;
/* * * * * * * *found* * * * * * * */
while(r!=0)
{a=b;
b=r;
r=a/b;
}
/* * * * * * * *found* * * * * * * */
printf("the maximum common divisor is %d\n",a);
}
额 是VC6.0 展开
#include<stdio.h>
void main()
{
int a,b,r,t;
scanf("%d,%d,%d",&a,&b);
if(a<b)
{t=a;a=b;b=t;}
r=a%b;
/* * * * * * * *found* * * * * * * */
while(r!=0)
{a=b;
b=r;
r=a/b;
}
/* * * * * * * *found* * * * * * * */
printf("the maximum common divisor is %d\n",a);
}
额 是VC6.0 展开
5个回答
展开全部
也就看到了两处,
void main()
{
int a,b,r,t;
scanf("%d,%d,%d",&a,&b);//这里一处,这里是要求输入三个数字,而能存入的地址只有两个a与b,剩下的一个如果存错地方就会报错,看看运气好不好了.
if(a<b)
{t=a;a=b;b=t;}
r=a%b;
/* * * * * * * *found* * * * * * * */
while(r!=0)
{a=b;
b=r;
r=a/b;//这里也可能会出错,b为零的话,可能会报错,也可能不会,这些我都碰见过.
}
/* * * * * * * *found* * * * * * * */
printf("the maximum common divisor is %d\n",a);
}
void main()
{
int a,b,r,t;
scanf("%d,%d,%d",&a,&b);//这里一处,这里是要求输入三个数字,而能存入的地址只有两个a与b,剩下的一个如果存错地方就会报错,看看运气好不好了.
if(a<b)
{t=a;a=b;b=t;}
r=a%b;
/* * * * * * * *found* * * * * * * */
while(r!=0)
{a=b;
b=r;
r=a/b;//这里也可能会出错,b为零的话,可能会报错,也可能不会,这些我都碰见过.
}
/* * * * * * * *found* * * * * * * */
printf("the maximum common divisor is %d\n",a);
}
展开全部
scanf("%d,%d,%d",&a,&b);这个scanf中的双引号里有三个%d,但是接收的变量只有a和b两个,检查不严格的编译器会忽略这个“错误”,但是,这的确是一个错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
除了第5行scanf语句中多了个%d外,还有两处问题:1.倒数第5行,应该是r=a%b;2.倒数第2行,输出的应该是b的值(不是a)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%d,%d,%d",&a,&b scanf里边就不对应。。vc的debug也不是万能的啊。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询