Description
Input
Output
Sample Input
i is has have be my more contest me too if award # me aware m contest hav oo or i fi mre #
Sample Output
me is correct aware: award m: i my me contest is correct hav: has have oo: too or: i is correct fi: i mre: more me
题意:给出所谓的字典,然后再给出要查找的单词,如果单词存在于字典中输出...is correct;否则输出与查的单词有一个字母不同,可以多一个字母,少一个字母的单词。
代码如下:
#include<stdio.h> #include<string.h> char ch[10002][20], son[30]; int main() { int i, j, t, jj; for(t=0; ; t++) { scanf("%s", ch[t]); if(ch[t][0]=='#') break; } while(1) { scanf("%s", son); if(son[0]=='#') break; int flag=0, len1=strlen(son); int r1[20], r2[20], r3[20], t1, t2, t3; for(i=0; i<t; i++) if(strcmp(son, ch[i])==0) {printf("%s is correct", son); break;} if(i==t) { printf("%s:",son); for(i=0; i<t; i++) { int len=strlen(ch[i]); int ll=strlen(son); if(len==ll) { int num=0; for(j=0; j<len; j++) if(ch[i][j]!=son[j]) num++; if(num==1) printf(" %s", ch[i]); } if(len-ll==1) //多一个字符 { int num=0; for(jj=0,j=0; j<len; ) { if(ch[i][j]!=son[jj]) num++, j++; else j++, jj++; } if(num==1) printf(" %s", ch[i]); } if(ll-len==1) { int num=0; for(j=0, jj=0; jj<ll; ) { if(ch[i][j]!=son[jj]) num++, jj++; else j++, jj++; } if(num==1) printf(" %s", ch[i]); } } } printf("\n"); } }