| ||||||||||
| 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