void menu()
{
printf("********************************\n");
printf("********************************\n");
printf("***********1.play***************\n");
printf("***********2.exit***************\n");
printf("********************************\n");
printf("********************************\n");
printf("********************************\n");
}
void game()
{
int guess = 0;
int ret = rand() % 100 + 1;
int count = 10;
while (count)
{
printf("你还有%d次机会\n",count);
printf("请输入要猜的数字:>");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("猜对了,答案是%d", ret);
}
count--;
if (count == 0)
{
printf("机会已经用完,正确答案是%d", ret);
}
}
}
int main()
{
srand((unsigned int)time(NULL));
int input = 0;
do
{
menu();
printf("是否开始游戏:>");
scanf("%d", &input);
switch (input)
{
case 1:
game();
printf("猜数游戏!\n");
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
}while (input);
return 0;
}
此代码首先引入一个菜单函数,输入1为真,开始游戏,输入0为假,结束游戏,while的条件就用输入的0或1来判断是否执行
其次是猜数的主体,引入一个随机数,用srand函数以不断变化的时间作为种子,以保证每次生成的随机数都不同,将随机数赋值给ret,共有10次机会,用户输入猜的数字,每输入一个便判断输入数字与ret的大小关系并给出提示,与此同时机会减一次,直至机会用完。
主函数部分用switch case语句来判断玩家是否开始游戏