
给大家带来一个以时间戳为种子的随机数猜数字程序。
首先,我们要用到以下头文件。
# include <stdio.h>
# include <time.h>
# include <stdlib.h>接下来,我们要以时间戳为种子。需要用到 srand()函数
srand((unsigned int)time(NULL));这样我们以时间戳为种子就完成了。
下面,我们用 do....while() 写一个简易菜单,人机交互是 do....while 的一个重要功能。
int main(void)
{
int input;
do {
printf("*******************\n");
printf("*******猜数字******\n");
printf("*******1.star******\n");
printf("*******2.end*******\n");
printf("*******************\n");
scanf("%d", &input);
} while (input);
return 0;
}效果如下

接下来,要给用户进行一个选择,所以,我们要嵌套一个 switch 语句。
int main(void)
{
int input;
do {
printf("*******************\n");
printf("*******猜数字******\n");
printf("*******1.star******\n");
printf("*******2.end*******\n");
printf("*******************\n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("游戏开始\n");
game(); // 游戏主体,我们将游戏主题放在main函数外
break;
case 2:
printf("游戏结束\n");
break;
default:
printf("没有这个选项哦\n");
break;
}
} while (input);
return 0;
}最后,我们定义一个 game()函数,来存放我们的游戏本体。
void game()
{
int guess;
srand((unsigned int)time(NULL));
int Number = rand() % (10+1); // 生成10以内的随机数
printf("请输入10以内的数字\n");
while (1) { // 使用while循环来实现多组输入
scanf("%d", &guess);
if (guess == Number)
{
printf("猜对了,但没有奖励!\n");
break;
}
else if (guess > Number)
{
printf("猜大了!\n");
continue;
}
else if (guess < Number)
{
printf("猜小了!\n");
continue;
}
}
}一个简单的带菜单猜数字游戏就完成了。
整体如下:
# define _CRT_SECURE_NO_WARNINGS 1
# include <stdio.h>
# include <time.h>
# include <stdlib.h>
void game()
{
int guess;
srand((unsigned int)time(NULL));
int Number = rand() % (10+1);
printf("请输入10以内的数字\n");
while (1) {
scanf("%d", &guess);
if (guess == Number)
{
printf("猜对了,但没有奖励!\n");
break;
}
else if (guess > Number)
{
printf("猜大了!\n");
continue;
}
else if (guess < Number)
{
printf("猜小了!\n");
continue;
}
}
}
int main(void)
{
int input;
do {
printf("*******************\n");
printf("*******猜数字******\n");
printf("*******1.star******\n");
printf("*******2.end*******\n");
printf("*******************\n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("游戏开始\n");
game();
break;
case 2:
printf("游戏结束\n");
break;
default:
printf("没有这个选项哦\n");
break;
}
} while (input);
return 0;
}