a的值老是2

来源:百度知道 编辑:UC知道 时间:2024/05/18 08:04:22
我用
Dev—Cpp编的一个小游戏。
但是,玩时发现a一直是2。
也还有很多问题,请高人只点。
小菜感激不尽!!!!!
#include<stdio.h>
#include<math.h>
main()
{int a,b,c=0;
a=int rand();
a:if(a<100)
{
for(;c<=5;c++)
{
scanf("%d",&b);
if(b==a)
{
printf("you are win!!!");
break;
}
else
{
if(b>a)
{
printf("big");
continue;
}
else
{
printf("small");
}
}
}
}
else
{
a=a-45
goto a;
}
}
感谢两位高手,但能不能再加个积分系统和可选择的继续与退出。
感激不尽!!!!!!!

这个是产生随机数时的问题,我改了一下,根据系统时间产生随机数,这下就不会每次产生相同的数了。程序运行OK。不过我认为猜的范围可以缩小,或则把猜的次数增多。呵呵!

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include<math.h>

void main()
{
int a,b,c=0;
srand((unsigned)time(NULL));
a = rand();
// a = a%10;//就是产生1 到10 的数
b: if(a<100)
{
for(;c<=5;c++)
{
scanf("%d",&b);
if(b==a)
{
printf("you are win!!!");
break;
}
else
{
if(b>a)
{
printf("big");
continue;
}
else
{
printf("small");
}
}
}
}
else
{
a=a-45;
goto b;
}
}

你没有设定随机种子,因此rand()所生成的随机数列实质上是确定的
开头加一句#include <time.h>
main()里面给a赋值之前先执行一句srand(time(NULL))设定随机种子,生成的就是随机数列了