游戏内容:玩家输入一个数字,程序生成一个随机数,比较其和随机数的大小。若相等,则提示玩家猜对了;不相等,则提示玩家猜大了还是猜小了,直到玩家猜对。
注意:生成随机数需要调用rand函数。
rand 函数:
生成随机数返回在0和RANDMAX之间的伪随机整数。这个数字是由一个算法生成的,该算法在每次调用时返回一系列明显不相关的数字。该算法使用一个种子来生成序列,该序列应该使用函数srand初始化为一些独特的值。
范围:
v1 = rand() % 100; // v1 in the range 0 to 99
v2 = rand() % 100 + 1; // v2 in the range 1 to 100
//猜数字游戏。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int menu()//给玩家提供一个菜单选项(开始游戏/退出游戏)
{
int choice = 0;
printf("***********************\n");
printf("****** 1.开始游戏 *****\n");
printf("****** 0.退出游戏 *****\n");
printf("***********************\n");
printf("请输入你的选项:\n");
scanf("%d", &choice);
return choice;
}
//开始游戏。
void game()
{ //生成随机数[1-100],调用rand函数 。
int random_num = rand() % 100 + 1;
int input = 0;
while (1)
{
printf("请输入猜的数字:\n");
scanf("%d", &input);
if (input > random_num)
{
printf("您猜大了。\n");
}
else if (input < random_num)
{
printf("您猜小了。\n");
}
else
{
printf("恭喜你猜对了!\n");
break;
}
}
}
int main()
{ //设置一个不固定的随机数(时间戳)
//时间戳:以1970年1月1日0时0分0秒为基准计算当前时刻与基准的时间差。
srand((unsigned int)time(0));
while (1)
{
int choice = menu();
if (choice == 1)
{
game();//开始游戏
}
else
{
printf("再见。\n");
break;
}
}
system("pause");
return 0;
}