在1到100猜数字
电脑产生一个随机数(1~100),猜数字,猜大了,猜小了直到猜对了结束
//电脑产生一个随机数(1~100)
// //猜数字
// //猜大了
//猜小了
//直到猜对了结束
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()//设置一个menu的函数
{
printf("*****************************\n");
printf("***********1.play************\n");
printf("***********0.exit************\n");
printf("*****************************\n");
}
void game()
{
int guess = 0;
//1.生成一个随机函数
//生成一个100以内的随机函数
//srand(time(NULL));此函数设置一次就行了不用循环设计,所以放到主函数设置一次就行了
// //此需要调用一个头文件为 #include<time.h>
int ret = rand()%101; //此处需要调用一个头文件为 #include<stdlib.h>
/*printf("%d\n", ret);打印出来的数字给系统看不能露出来*/
//随机数字生成的公式
//设置一个随机数范围再[a,b];
// 在之前设置一个srand(time(NULL));
// 通用公式:a+rand()%(b-a+1)
//2、猜数字
while (1) //死循环的意思,让循环一直循环;猜对了才跳出
{
printf("请猜数字:");
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你,答对了\n");
break;
}
//如果这个形式的话只能实现一次,应为一个循环
}
}
int main()
{//NULL就是空指针,就是一个0
srand((unsigned int)time(NULL)); //此处可能会丢失数据需要转换到(unsigned int)
int input = 0;
//do{}while循环是先做再循环
do
{
menu();//引入进来一个函数
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case 1:
/* printf("猜数字\n");*/
game();//猜数字的整个逻辑,调用一个函数
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,重新选择\n");
break;
}
} while (input); //当input=0的时候数据为假,直接退出循环
return 0;
}