牛人 请进 帮改一下 谢了
题目描述这里有一个猜数字的游戏,游戏的规则是这样,系统随机生成一个0-100(不包括0和100)之间的数字。然后让玩家来猜,开始给出数字的范围为(0-100),如果玩家猜的数比生成的数大,提示数字太大,并更新范围为(当前小数-他猜的数)如果猜的比生成的数小,则提示太小。并更新范围为(他猜的数-当前的大数)。如果猜的数字超出范围,则提示超出范围。如果猜对了,则提示正确和猜了几次。例如随机生成的数字是50,然后玩家猜的是30,则提示太小,并更新范围到(30-100),然后玩家猜70,提示太大,并更新范围到(30-70),如果玩家猜80,则提示超出范围。当玩家猜50时,提示正确猜了4次。现在你的程序就是要实现类似这样的功能。
输入
开始是一个正整数n,表示有n组测试数据。
每组数据包括,一个整数k,表示随机生成的数字,和一个整数m,表示这个玩家总共猜了几次。
接着是m个整数,分别表示玩家猜的数字。
输出
对于每组测试数组,如果玩家回答在数字范围外,则输出“超出范围”。
在有效范围内,如果在比生成的数字小则输出“数字太小”。如果比生成的数字大,则输出“数字太大”,并在提示的同一行输出更新之后的范围,两个整数表示范围。整数用一个空格隔开,第一个整数和前面的提示也用一个空格隔开。
如果数据刚好是生成的数,则输出正确,和他了几次的次数。次数用一个空格和前面提示隔开,对于剩余数据需要被读入,但是不做任何的提示输出。
如果一组测试中,所有的数字都没有回答正确,则输出“回答错误”。
每次提示输出都独占一行。
样例输入
2
50 5
10 10 70 70 60
60 4
60 50 40 70
样例输出
数字太小 10 100
超出范围 10 100
数字太大 10 70
超出范围 10 70
数字太大 10 60
回答错误
正确 1
#include<stdio.h>
int main()
{
int b=1,i,k,o,m,n,zuo=0,you=100,a;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&m,&o);
zuo=0;you=100;
for(k=0;k<o;k++)
{
scanf("%d",&a);
if(a>zuo&&a<you)
{
if(a<m)
{
zuo=a;
printf("数字太小 %d %d\n",zuo,you);
}
else if(a>m)
{
you=a;
printf("数字太大 %d %d\n",zuo,you);
}
else if(a==m)
{
b=0;
printf("正确 %d\n",k+1);
break;
}
}
else
printf("超出范围 %d %d\n",zuo,you);
}
if(b=1)
printf("回答错误");
}
system("pause");
return 0;
}