完成猜数字游戏(1-100)
#include <stdio.h>
#include <windows.h>
#include <math.h>
#pragma warning(disable:4996)
int menu(){ //菜单函数
int choose = 0;
printf("***********************\n");
printf("please choose:\n");
printf("1.GAME\n");
printf("0.EXIT\n");
printf("***********************\n");
while (1){ //while(1)是一个死循环 可以通过return() 或者break;跳出循环
scanf("%d", &choose);
if (1 == choose){
return 1;
}
else if (0 == choose){
return -1; //只是一个返回的标志 写-2或者其他的也没影响
}
else // 注意:这里的条件判断,只有接受0和1的时候才能跳出循环,给主函数只传1和-1两个值,但是并没有退出主函数的死循环
{
printf("Please choose again!\n"); //这个条件是输入了除1和0以外的数,程序运行时一直都在menu()的死循环里面 ,没有传参给主函数里的flag,
} //也就没有进入到主函数执行后续步骤
}
}
void game(){ //游戏函数
int num = 0;
int r = 0;
srand((unsigned)time(NULL)); //种下随机数种子,随机种子来自系统时钟
r = rand() % 100 + 1; //1-100的随机数
while (1){ //死循环
printf("guess:");
scanf("%d", &num); //输入一个数,然后进行条件判断
if (num > r){ //如果该数大于随机数则输出:。。。
printf("The guess munber is big!\n");
}
else if (num < r){
printf("The guess munber is small!\n");
}
else
{
printf("Guess right!\n");
break; //跳出循环
}
}
}`int main(){
int flag = 0;
while (1){
flag = menu(); //主函数再写一个死循环,运用menu()传出的返回值
if (1 == flag){ //返回值是1,进入game()里
game();
}
else{ //如果是其他的返回值,则退出该循环
break;
}
}
system("pause");
return 0;
}
`