| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
代码清晰易懂,有注释,题目不难但查了n久还是WA,苦恼不已!请看出问题的不吝赐教,非常感谢啊~~!!!#include<stdio.h>
#include<string.h>
int main()
{
int i,t[20],k,s,flag[20];
char a[20];
while(1)
{
s=0;k=0;i=0;
for(i=0;i<20;i++)
flag[i]=0; //初始化
while(1)
{
scanf("%d",&t[k]);
fflush(stdin);
if(t[k]==0) {s=1;break;} //如果接受到0,s=1并跳出小循环
gets(a);
if(strcmp(a,"too low")==0) //如果是小,就变为-1
flag[k]=-1;
if(strcmp(a,"too high")==0) //如果是大,就变为1
flag[k]=1;
if(strcmp(a,"right on")==0)
break;
k++;
}
if(s==1) break; //如果接受到0,s变为1,结束整个循环
i=0;
for(i=0;i<k;i++) //t[k]就是right on时得到的数
{
if(t[i]>t[k]&&flag[i]==-1) break; //如果是大但flag[i]却为-1,矛盾
if(t[i]<t[k]&&flag[i]==1) break; //如果是小但flag[i]却为1,矛盾
if(t[i]==t[k]) break; //如果没结束前就是本身,矛盾
}
if(i==k) printf("Stan may be honest\n"); //如果循环中没出现break,证明没有矛盾
else printf("Stan is dishonest\n");
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator