题目:
电脑根据函数随机给出一个一定范围内的数字;用户输入数字,去猜大小,对比数字,电脑给出提示,不断循环,知道猜正确。
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("*******************\n");
printf("****** 1. play ****\n");
printf("****** 0. exit ****\n");
printf("*******************\n");
}
void game()
{
int guess = 0;
int ret = rand() % 100 + 1;//生成1-100之间的随机数
while (1)
{
printf("请猜数字:>");
scanf("%d", &guess);
if (guess < ret)
printf("猜小了\n");
else if (guess > ret)
printf("猜大了\n");
else
{
printf("恭喜你,猜对了\n");
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
do
{
menu();
printf("请选择:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,请重新选择!\n");
break;
}
} while(input);
return 0;
}
注意:
rand()是生成随机数的函数,在使用它之前,还要调用srand()设置随机数的起始值。 srand()中传入的值不同rand生成的值就不同,因为时间是时刻在发生变化的,因此使用time()函数来生成一个时刻不同的值即可(与随机数不同,随机数不会规律变化)。并将time()函数的返回值强制类型转化为 unsigned int。同时,srand只要在程序开始时设置一次就可以了。