| ||||||||||
| 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 | |||||||||
求大神帮忙看一下代码啊,为什么老是WA,disscuss中的能找到的数据基本都测了,输出没有问题啊#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char words[10001][15];
char matched[51][15];
int len[10001];
int tag[10001];
int t_num;
int w_num;
int m_num;
bool do_check(char str[])
{
t_num = 0;
int s_len = strlen(str);
int same;
for(int i=0; i<w_num; i++)
{
same = 0;
int j,t;
if(len[i] == s_len)
{
if(!strcmp(words[i],str))
{
printf("%s is correct\n",str);
return true;
}
for(j=0, t=0; j<len[i] && t<s_len; j++, t++)
{
if(words[i][j] != str[t])
{
same++;
if(same>1)
break;
}
}
if(same == 1)
{
tag[t_num] = i;
t_num++;
}
}
else if(len[i]-s_len == 1)
{
for(j=0, t=0; j<len[i] && t<s_len;)
{
if(words[i][j] != str[t])
{
same++;
if(same>1)
break;
j++;
continue;
}
j++; t++;
}
if(same == 1 || (same == 0 &&j==s_len && t==s_len))
{
tag[t_num] = i;
t_num++;
}
}
else if(s_len - len[i] == 1)
{
for(j=0, t=0; j<len[i] && t<s_len;)
{
if(words[i][j] != str[t])
{
same++;
if(same>1)
break;
t++;
continue;
}
j++; t++;
}
if(same == 1 || (same == 0 &&j==len[i] && t==len[i]))
{
tag[t_num] = i;
t_num++;
}
}
}
return false;
}
int main(int argc, char **argv)
{
w_num = 0;
m_num = 0;
while(1)
{
scanf("%s",words[w_num]);
if(!strcmp(words[w_num],"#"))
break;
len[w_num]=strlen(words[w_num]);
w_num++;
}
while(1)
{
scanf("%s",matched[m_num]);
if(!strcmp(matched[m_num],"#"))
break;
m_num++;
}
for(int i=0; i<m_num; i++)
{
if(!do_check(matched[i]))
{
printf("%s:",matched[i]);
if(t_num ==0)
{
printf("\n");
continue;
}
for(int i=0; i<t_num-1; i++)
printf(" %s",words[tag[i]]);
printf(" %s\n",words[tag[t_num-1]]);
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator