一个半成品,
花了我一下午,但是还是有点小问题,累了,睡觉去的,改天继续。
问题就是搜索顺序不对,我是按顺序搜索的,他是排完序搜索的,结果无问题,在G++下编译,
懒得解释题目了,郁闷
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std;
typedef struct node { char c[7]; char y[7]; int n; }NODE;
int main() { NODE node[101]; string str; int t=0,i,j,temp,flag; while(cin>>str&&str;!="XXXXXX") { node[t].n= str.length(); for(i=0;i<node[t].n;i++) { node[t].y[i]=str[i]; node[t].c[i]=str[i]; } sort(&node;[t].c[0],&node;[t].c[str.length()]); t++; } while(cin>>str&&str;!="XXXXXX") { flag=0; sort(&str;[0],&str;[str.length()]); for(i=0;i<t;i++) { if(int(str.length())==node[i].n) { temp=1; for(j=0;j<node[i].n;j++) { if(node[i].c[j]!=str[j]) { temp=0; break; } } if(temp==1) { cout<<node[i].y<<endl; flag=1; } } } if(flag==0) cout<<"NOT A VALID WORD"<<endl; cout<<"******"<<endl; } }
|