一个经典的入门练习题
重点知识内容包括
(1)如何生成随机数
(2)if语句的使用
逻辑方面仍有需要改进的地方,希望大神可以提出来,感谢!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu() //菜单函数
{
printf("#########猜数字游戏#########\n");
printf("##########游戏规则##########\n");
printf("#####系统随机生成一个整数####\n");
printf("#您需要通过键盘输入你猜的数字#\n");
printf("####系统会提示过大还是过小####\n");
printf("######每次游戏有10次机会######\n");
printf("#########输入1开始游戏########\n");
}
int main()
{
menu();
int game; //设置游戏标志位。
scanf("%d",&game);
srand((unsigned int)time(NULL));
//给time函数一个空指针NULL,便会返回一个时间戳,
//这个时间戳是随时间不断变化的,
//srand()函数需要一个无符号整型的种子参数来生成随机数
switch(game)
{
case 1:
break;
default:
printf("输入错误,游戏退出");
}
while(game==1)
{
int a=rand()%100,b;
//生成[0-100]的随机数a,生成[0,a]的范围就让rand()%a
//b为用户输入的数
int count=0; //游戏次数
int flag=1;
//判断标志位
//flag为1时进行游戏
//flag为0时结束游戏
printf("随机数生成完毕,你觉得是?\n");
while(flag)
{
scanf("%d",&b);
if(b<a)
{
printf("太小了,再来一次吧\n");
}
else if(b>a)
{
printf("太大了,再来一次吧\n");
}
else
{
printf("猜对了,真厉害!\n");
flag =0;
//判断标志位置0
}
count++;
//一个判断周期结束就给判断次数加一
if(count==10)
{
printf("失败次数太多了哟,游戏结束\n");
flag =0;
判断标志位置0
}
}
printf("输入1继续,0退出\n");
scanf("%d",&game);
}
return 0;
}