1.完整代码如下
#include <stdio.h>
#include <stdlib.h>
int main(){
int i = 0;
srand(time(NULL));//随机数生成器
do{
menu();
printf("请选择:");
scanf("%d", &i);
getchar();//吸收掉输入缓冲区的enter,不加也没影响
switch(i){
case 0:
printf("游戏结束!");
break;
case 1:
game();
break;
default:
printf("请输入1或0!");
}
}while(i);
return 0;
}
//打印菜单
void menu(){
printf("******************************************\n");
printf("*********1.play-----0.over****************\n");
printf("******************************************\n");
return;
}
void game(){
int ret = rand()%100+1;//随机生成1~100的数字
int i = 0;
while(1){
printf("请输入猜想的数字:");
scanf("%d", &i);
getchar();
if(i>ret){
printf("猜大了!\n");
printf("请重新输入\n");
}else if(i<ret){
printf("猜小了!\n");
printf("请重新输入\n");
}else{
printf("猜对了!");
printf("数字就是%d\n", ret);
break;
}
}
return;
}
2.学习到的主要知识点
time();此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t并非空指针的话,此函数也会将返回值存在t指针所指的内存。
srand(); srand函数是随机数发生器的的初始化函数。原型:void srand(unsigned int seed);srand和rand()配合使用产生伪随机数序列。
rand(); 返回一个随机数。
简单来说,rand()随机生成数字都是固定的,所以通过srand()改变起点值,而srand()函数通过参数的变化而使起点值变化,time()函数获取的时间值每秒都是变化的,因为时间是会一直变动的。