使用do while循环
int main()
{
int input = 0;
do
{
menu();//游戏的棋盘
printf("请选择;>");
scanf("%d", &input);
switch (input)
{
case(1):
game();//游戏的程序
break;
case(0):
printf("退出游戏n");
break;
default:
break;
}
}while (input);//input为0时退出程序,非0时进入函数
return 0;
}
2.定义棋盘内容
void menu()
{
printf("*****************************n");
printf("***********1. play***********n");
printf("***********0. exit***********n");
printf("*****************************n");
}
3.game函数内容
void game()
{
int guess = 0;
srand((unsigned int)time(NULL));
//放在主函数更好,不用每次使用时在game函数中重新调用
//(unsigned int)强制转为时间戳为srand函数可修饰的函数类型
//time(NULL)为时间戳,是一个时刻变化的随机值
int ret = rand()%100+1;
//生成随机数的函数,范围为0-RAND_MAX(0~32767),调用rand需要先调用srand
//因所求解的范围为0~100以内,应为rand()%100+1;(%100所求余数氛围为0~99,+1范围变为0~100以内)
while (1)
{
printf("请猜数字:>");
scanf("%d", &guess);
if (guess < ret)
printf("猜小了n");
else if (guess > ret)
printf("猜大了n");
else
{
printf("猜对了n");
break;
}
}
}
4.最终代码
#define _CRT_SECURE_NO_WARNINGS 1 #include#include #include void menu() { printf("*****************************n"); printf("***********1. play***********n"); printf("***********0. exit***********n"); printf("*****************************n"); } void game() { int guess = 0; int ret = rand()%100+1; //生成随机数的函数,范围为0-RAND_MAX(即0~32767);调用rand需要先调用srand //因所求解的范围为0~100以内,应为rand()%100+1;(%100所求余数氛围为0~99,+1范围变为0~100以内) while (1) { printf("请猜数字:>"); scanf("%d", &guess); if (guess < ret) printf("猜小了n"); else if (guess > ret) printf("猜大了n"); else { printf("猜对了n"); break; } } } int main() { srand((unsigned int)time(NULL)); //放在主函数更好,不用每次使用时在game函数中重新调用 //(unsigned int)强制转为时间戳为srand函数可修饰的函数类型 //time(NULL)为时间戳,是一个时刻变化的随机值 int input = 0; do { menu(); printf("请选择;>"); scanf("%d", &input); switch (input) { case(1): game(); break; case(0): printf("退出游戏n"); break; default: printf("选择错误,请重新选择n"); break; } }while (input); return 0; }



