c语言问题,为什么执行不下去的,我输入一个数比如1时,按回车有时没执行下去,这是为

#include<stdio.h>
#include<time.h>
void main()
{
int a,number=1;
srand(time(NULL));
rand()%2;
printf("请输入你要猜的数:");
scanf("%d",&a);
if (a!=rand()%2)
{
while(a!=rand()%2)
{
if(a>=rand()%2)
printf("抱歉,你猜错了,你猜的数过大!\n");
else if(a<=rand()%2)
printf("抱歉,你猜错了,你猜的数过小!\n");
number++;
printf("请输入你要猜的数:");
scanf("%d",&a);
if(a==rand()%2)
{
printf("恭喜你猜对了,一共猜了%d次\n",number);break;
}
if(number==10)
{
printf("抱歉,你猜了10次也没有猜中\n");break;
}
}
}
else
printf("恭喜你,只猜一次就对了\n");
}

代码贴上来追问

请看补充!

追答

srand(time(NULL));没有强制装换,应该是 srand((unsigned) time(NULL));

追问

好像情况没有解决。你有没有尝试过??

追答

随机数用一个变量接收

追问

可以了。就是不知道为什么会出现这种情况!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-27
你没用一次rand()就执行一次随机,肯定不行
你可以int key;
key = rand()%2;
把后面的rand()%2用key来代替追问

可是老师要求每次运行程序时机器所“想”的数不能都一样。就是它为什么会出现输入1后程序结束这种情况?