您的位置:首页 > 其它

hdu 1073 Online Judge(4)

2011-08-17 14:10 363 查看
比赛时看大家都把这道题给做了,我就去看了,有思路,但没耐下心去做,现在看了别人的思路,我靠,和我当时想的一样!就想打自己几下。。。。现在又去调了,才发现好多地方以前我还是没注意到,有些是我不理解的,比如,数组a和b不初始化会出错(第一次忘了是字符型,初始化成memset(a,0,sizeof(a)),但是错了,不能理解),第19行中,for循环里的i范围为i<=k而不是i<k,还有40行中a[i]!='\0'而不是a[i]!='\n'。。。做完后想了想,还好没打。。

对于这种类型的题目,涉及输入时有多行的,总感觉有些地方是我的盲区,现在又不知道去哪照找相关的东西。。。郁闷中。。。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i,j,n,len1,len2,temp,k;
char a[5005],b[5005],c[5005];
scanf("%d",&n);
getchar();
while(n--)
{
gets(c);
memset(a,'0',sizeof(a));   //注意
memset(b,'0',sizeof(b));
len1=0;
while(gets(c),strcmp(c,"END")!=0)
{
k=strlen(c);
for(i=0;i<=k;i++)   ///注意
{
a[len1]=c[i];
len1++;
}
}
gets(c);
len2=0;
while(gets(c),strcmp(c,"END")!=0)
{
k=strlen(c);
for(i=0;i<=k;i++)
{
b[len2]=c[i];
len2++;
}
}
temp=0;
for(i=0,j=0;i<=len1&&j<=len2;)
{
if(a[i]!=b[j])
if(a[i]==' '||a[i]=='\t'||a[i]=='\0')  //注意
{
i++;
temp=1;
}
else
if(b[j]==' '||b[j]=='\t'||b[j]=='\0')
{
j++;
temp=1;
}
else
{
temp=2;
break;
}
else
{
i++;
j++;
}
}
if(temp==0)
printf("Accepted\n");
if(temp==1)
printf("Presentation Error\n");
if(temp==2)
printf("Wrong Answer\n");

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: