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 |
好心人,帮我看一下吧。谢谢!不知道错哪里了。 郁闷,在线等... #include<iostream.h> #include<stdlib.h> #include<string.h> struct prefix { int k; char str1[22],str2[22]; }mmd[1000]; int cmp1(const void *a,const void *b) { return strcmp(((prefix*)a)->str1,((prefix*)b)->str2); } int cmp2(const void *a,const void *b) { return ((prefix*)a)->k-((prefix*)b)->k; } int main() { int i=0,m1=0,m2=0,j,len,min; while (cin>>mmd[i].str1) { mmd[i].k=i; i++; } len=i; qsort(mmd,len,sizeof(mmd[0]),cmp1); for (i=0;i<len;i++) { if (i!=len-1) { for (j=0;mmd[i].str1[j]!='\0'&&mmd[i+1].str1[j]!='\0';j++) if (mmd[i].str1[j]!=mmd[i+1].str1[j]) break; m2=j; } else m2=0; min=(m1>m2)?m1:m2; for (j=0;j<=min;j++) mmd[i].str2[j]=mmd[i].str1[j]; mmd[i].str2[min+1]='\0'; m1=m2; } qsort(mmd,len,sizeof(mmd[0]),cmp2); for (i=0;i<len;i++) cout<<mmd[i].str1<<" "<<mmd[i].str2<<endl; return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator