Advertisement

练习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)

还没有任何评论哟~