中易网

用VS2010编程,调试时出现一个Debug Error!的框子,求神请教!!

答案:1  悬赏:20  
解决时间 2021-01-15 12:48
  • 提问者网友:献世佛
  • 2021-01-15 09:06
用VS2010编程,调试时出现一个Debug Error!的框子,求神请教!!
最佳答案
  • 二级知识专家网友:青尢
  • 2021-01-15 09:31
e没给初值.你程序有问题 ,得不到你要的结果,百度一下辗转相除法,这是求最大公约数与最小公倍数的最好算法追问e为什么要定义初值?不需要啊。我用的就是辗转相除法啊,没问题的!追答while(e!=0)你知道e的初值是多少?e是一个不确定数,不想多解释,你随便将e赋一个值,运行一下就知道了追问可是e=a%b,如果提前赋值,如何实现程序的正确性呢?小弟新手,求大师解,万分感谢!!追答#include
int main()
{
int a,b,c,d,e=1,h;
printf("请输入两个正整数:");
scanf("%d%d",&a,&b);
if(a {
c=a;
a=b;
b=c;
}
d=a*b;
while(e!=0)
{
e=a%b;
a=b;
b=e;
}
printf("最大公约数为:%d\n",a);
printf("最小公倍数为:%d\n",d/a);
return 0;
}
这是正确的,你自己对比一下。用scanf时,“”里是啥就输啥,你的中间有个逗号,那么你输入时就要输入6,8打个比方,不能输6 8.你要使while能启动,那么e!=0,但是你并没有说明e!=0,虽然C会给它一个不确定值(大多数不会为0),但要避免这样,e即使提前赋值,但这不影响将e重新赋值(即e=a%b).我昨天有点事,没能及时回答。希望你能听懂。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息