题目:在1~100之间随机生成一个数字,让玩家输入数字与随机数进行比较,输入的数比随机数大,打印
1.首先打印菜单,显示 1. play 0.exit。
2.玩家选择 1或者0
3.根据玩家输入的选择来进行操作。
当玩家选择1时,进行游戏。随机生成一个1~100之间的随机数。玩家输入猜的数字与生成的随机数进行比较,若比随机值大,则提示“猜大了”。比随机数小,提示“猜小了”。相等则提示“恭喜你,猜对了!”。当游戏结束时,再次打印菜单。若玩家想继续玩,可以再次选择1,进行循环。若不想玩,输入0.退出程序。
当玩家选择0时,则直接退出程序。
从上面的描述我们可以知道我们需要一个循环来让玩家进行多次选则0或1.这里我们选则do while循环。目的是在程序运行时就打印菜单
int main()
{
do
{
printf("-----------------------\n");
printf("-------1. play---------\n");
printf("-------0. exit---------\n");
printf("-----------------------\n");
}while(0);
}
这里的do while()里面的循环条件我们暂时先写0.然后运行一下代码,图面如下:
我们可以把循环内部的printf语句写成一个函数,这样可以让我们的main函数看起来更简洁。
void menu()
{
printf("-----------------------\n");
printf("-------1. play---------\n");
printf("-------0. exit---------\n");
printf("-----------------------\n");
}
int main()
{
do
{
menu();
} while (0);
return 0;
这时候我们可以定义一个变量input来接受玩家输入的选择。我们可以把input放入do while()的循环条件中。这样的好处是当玩家输入1时,开始游戏,等游戏结束时此时的input仍是1,会进入下一次循环。再次打印菜单。玩家可以再次输入1或者0.若不想玩就输入0.while(0)退出循环。注意:我们在定义input变量时要定义在do while循环的外面。若定义在循环的里面do while循环识别不到变量input
定义在循环外面,图片如下:
定义在循环里面,图片如下:
接下来用scanf来接收玩家的输入。当玩家输入1时,开始游戏。输入0时退出游戏。我们可以用switch case语句来完成上述操作。把input作为switch的参数。这里的游戏代码我们暂且用printf(“游戏正在进行\n”);来代替
int main()
{
int input = 0;
do
{
menu();
printf("请输入:");
scanf("%d", &input);
switch (input)
{
case 1:
printf("开始游戏\n");
printf("游戏正在进行\n");
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("输入错误,请输入0或者1\n");
}
} while (input);
return