vc6.0高手来

来源:百度知道 编辑:UC知道 时间:2024/07/03 04:30:33
我编写了个两个数的最大公约数如下:#include<stdio.h>
void main()
{
int n,m,max,t,q,p;
t=1;q=0,p=0;
printf("n:");
scanf("%d",&n);
printf("m:");
scanf("%d",&m);
if(n>m)
p=n,q=m;
else p=m,q=n;
do
{
t=p%q;
p=q;
q=t;
}
while(t!=0)
max=p/q;
printf("max:%d\n",max);
}
我调试过,显示a.exe - 0 error(s), 0 warning(s)
但运行它却显示:无法执行程序,请高手指点下。
上面写的“但运行它却显示:无法执行程序,请高手指点下。”写错,我可以运行到,但我输入数字时出现了:应用程序错误的字条,为什么?

你的do{}while();语句的形式不对
while();括号的后面应该有个分号才对
再看看你的判断:
当t为0的时候才会终止这个循环
因为是先执行,再判断,所以q=t会执行,这时q=t=0
跳出循环后,你将q作为除数,自然会出错