用数组编程实现猜数字游戏:假设 0-9 数字 1 个,若第一次猜中显示“你最棒”, 第二次猜中显示“你真行”,第三次猜中显示“你真幸运”,最多猜三 次,若三次均未猜中,显示“失败”并结束程序!
你这个的话,主要是分成两个模块,1、生成随机数;2、输入猜的数,并进行判断;2号模块就是一个循环里面包含着接受猜的数,并进行判断。
关于你所提到的数组编程,我有点不太了解,是以数组接收,还是生成一个数组的随机数;亦或者是像扫雷一样的游戏,那数组就是坐标
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void menu()
{
printf("\n\n**************************\n");
printf("\t 1.play\n");
printf("\t 0.exit\n");
printf("**************************\n");
}
void game()
{
int guess = 0,flag=0;//flag为次数计数器
//生成随机数
int number = rand() % 10; //rand可以生成一个0~32767的随机数 通过随机数对10取余调整其范围为0-9
//猜数字
while (1)
{
printf("您猜测数字为:\n");
scanf("%d", &guess);
if (guess < number)
{
printf("小了,go on!\n\n");
flag++;
if(flag==3)//失败次数超过三的情况
{
printf("失败!");
break;
}
}
else if (guess > number)
{
printf("大了,go on!\n\n");
flag++;
if(flag==3)
{
printf("失败!");
break;
}
}
else
{
printf("恭喜你,猜对啦!\n");
if(flag==0)//一次答对
printf("你最棒!");
else if(flag==1)//两次答对
printf("你真行!");
else if(flag==2)//三次答对
printf("你真幸运!");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
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;
}