练习4-6 猜数字游戏 (15 分)
发布时间
阅读量:
阅读量
练习4至6号的猜数字游戏(满分15分)
请编写一个程序来自动比较所猜测数值与计算机生成的被测数值,并告知是过高("Too big")还是过低("Too small")。当用户成功猜中时,请计算并记录猜测次数后立即终止整个程序流程。根据猜测次数给予相应提示:
- 一次就猜中的情况请输出"Bingo!";
- 在三次之内成功 guess 则输出"Lucky You!";
- 如果在四到 N 次之间出现正确结果时则输出"Good Guess!";
- 若在尝试次数达到或超过 N+1 次后仍未成功则输出"Game Over"并结束程序运行。
请注意,在任何情况下若用户在尝试次数未达到 N 之前输入负值也需立即输出"Game Over"并终止运行流程。
在第一行中显示两个不超过100的正整数值,分别代表游戏机生成的一个随机数值和用户设定的最大猜测次数N.每次从标准输入读取一行数据,并继续操作直至用户输入负值时终止程序.
程序每次会显示当前的猜测结果,并根据是否正确显示'Game Over'的状态
输入样例:
58 4
70
50
56
58
60
-2
输出样例:
Too big
Too small
Too small
Good Guess!
代码如下:
include<stdio.h>
int main()
{
int a,b,t,i=0;
static int n[100];
scanf("%d %d",&a,&b);
scanf("%d",&n[i]);
while(n[i]>=0)
{
i++;
scanf("%d",&n[i]);
}
int k=0,count=0;
while(n[k]>=0)
{
count++;//统计猜的次数;
if(a<n[k]) printf("Too big\n");
if(a>n[k]) printf("Too small\n");
if(a= =n[k]&&count< =b)//测试点3超过n此才对无效;需要加一个count<=b;
{
if(count= =1) printf("Bingo!\n");//1次猜出该数
//不可用k,因k是数组的下标;从零开始;
if(count>1&&count<=3) printf("Lucky You!\n");//如果3次以内猜到该数
if(count>3&&count<=b) printf("Good Guess!\n");//超过3次但是在N(>3)次以内
break;
}
if(count>b) //超过N次都没有猜到
{
printf("Game Over\n");
break;
}
if(n[k]<0&&count<=b) //如果在到达N次之前,用户输入了一个负数
{
printf("Game Over\n");
break;
}
k++;//数组的下标;
}
if(i==0) printf("Game Over\n");//测试点4直接退出;
}
全部评论 (0)
还没有任何评论哟~
