2 wei   123 wei___123 于 2017.08.28 19:48 提问

有个代码有时运行的出来有时就卡住了

貌似只有在运行减号的时候出问题
我设置了a 1.运行卡住了![图片说明](http://img.ask.csdn.net/upload/201708/28/1503920809_43015.png)
2.a比b小![图片说明](http://img.ask.csdn.net/upload/201708/28/1503920838_912545.png)
3.是正常的a大于b![图片说明](http://img.ask.csdn.net/upload/201708/28/1503920866_700572.png)
#include
#include
#include
main()
{
int a,b,c,sign,max,i=1;
char sign1;
printf("Please input a number ('1'or others, 1:-;others:+)输入1为减号,输入其他数字为正号只能输入数字\n");
scanf("%d",&sign);
printf("Please input the MAX number\n");
scanf("%d",&max);
srand(time(NULL));
a=rand()%max;
b=rand()%max;
while(a<b&&sign==1);
{
a=rand()%max;
b=rand()%max;
printf("1;\n");
}
sign1=(sign==1?'-':'+');
while(i)
{
printf("%d%c%d=",a,sign1,b);
scanf("%d",&c);
if(sign==1&&a-b==c)
{
printf("YES!");
i=0;
}
else if(sign!=1&&c==(a+b))
{
printf("YES!");
i=0;
}
else
{
printf("NO!");
i=1;
}
}
}

1个回答

justin_bkdrong
justin_bkdrong   2017.08.29 10:06
已采纳

这行错了,循环后多了个分号。
这样的程序用调试器一调试几分钟就找到问题了。
具体的IDE有,vs2005 vs2008 vs2010 vs2012 vs2013 vs2015 vs2017 , codeblocks , Netbeans ,
在linux 使用 gdb 调试器或者使用codeblocks.

 while(a<b&&sign==1);
justin_bkdrong
justin_bkdrong 回复wei___123: dev-c++也能单步调试
3 个月之前 回复
wei___123
wei___123 我是用dev-c++的,应该用什么调试呢
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片