完成猜数字游戏: 电脑给出随机的一个数(1~100),玩家去猜,猜对则会提示猜对了,否则提示猜大了或者猜小了。
这个程序最主要的就是如何生成随机数,我们知道用 rand() 这个函数可以返回一个随机数,但它需要先前有 srand() 函数的生成,在srand ()函数中是要给出 unsighed int 类型的值,但是里面也必须得是变化的数才能生成随机的数,如果是固定的值也不可以,这里我们就想,什么在计算机里是变化的?我们想到了时间,在计算机里有一个 “时间戳”的定义(不知道的同学可找度娘),这里就引用这个时间戳来帮助生成我们的随机数,先前需要引用<time.h>,就可以生成随机数了。
这里需要注意,在猜出数字之前,这个随机生成的数不能每次没有猜对都换一个数,要在猜对之前只是一个数,也就是要把这个随机数生成在猜数字前,销毁在猜对后。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("--------------------------\n");
printf("-------- 1、玩 --------\n");
printf("-------- 0、不玩 --------\n");
printf("--------------------------\n");
printf("--------- 请选择 ---------\n");
}
void game()
{
int guess = 0;
int ret = 0;
srand((unsigned int)time(NULL)); //生成随机数
ret = rand() % 100 + 1; //生成随机数,模100+1这样就可以将随机数变为啊1~100
while (1) //死循环,只有猜对了才可以跳出
{
printf(“输入要猜的数字\n”);
scanf("%d", &guess);
if (guess > ret)
{
printf(“猜大了\n”);
}
else if (guess < ret)
{
printf(“猜小了\n”);
}
else
{
printf(“猜对了\n”);
break;
}
}
}
int main()
{
int input = 0;
do{
menu();
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf(“退出游戏”);
break;
default:
printf(“输入错误,请重新输入”);
break;
}
} while (input); //先执行,后判断,while里是0就弹出,其他的任就循环,所以while里用这个input正好符合
system(“pause”);
return 0;
}