学习了分支语句和循环语句,接下来让我们用一个猜数字游戏来综合运用一下
首先先创建程序的主程序
int main()
{
int input =0;
do{
neum();//菜单函数
printf("输入你的选择");
sacnf("%d",&input);
switch(input)
{
case 1:
game();//游戏函数
break;
case 0:
printf("退出游戏")
break;
default:
printf("输入错误");
break;
}
}while(input)//do while循环,开始上来先循环一次,如果用户输入的是1 将继续循环
return 0;
}
接下来完成菜单函数部分:
void neum()
{
printf("*****************************");
printf("***** 1,paly 0,exit *****");
printf("*****************************");
}
之后进行最重要的一部分,game函数的编写:
void game()
{
int guess=0;
srand((unsigned)time(NULL))
//time函数获取时间戳,NULL是一个空指针,unsigned强制转化为无符号整型(由于srand函数对传入数字的要求)在使用rand之前,要用srand确定起始位置,不可使用确定的数,因此想到时间戳
int res=rand()%100+1 //产生1-100的随机数
while(1)
{
printf("请输入你猜的数字");
scanf("%d",&guess);
if(guess>res)
printf("猜大了");
else if(guess<res)
printf("猜小了");
else
{
printf("猜对了");
break;
}
}
}
这样大部分就已经写完了。后面只需要对代码的某些位置进行调整,已经加上头文件即可
这个程序相对于上面所写的部分代码,有所区别的地方,其一在加了头文件,其二在于
srand((unsigned)time(NULL))的位置调整,这是因为,这个函数如果写在game的内部,会导致产生的随机数,都比较相近,不随机,写在主程序内就能很好的避免这个问题。