| ||||||||||
| 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>
#include<cstring>
#include<cstdlib>
using namespace std;
struct SDis
{
char aText[3][100];
int ID;
}Dis[1005];
int CompareDis(const void *p1,const void *p2)
{
return ((struct SDis *)p1)->ID - ((struct SDis *)p2)->ID;
}
bool IsEmptyline(const char *szTemp)
{
int n=strlen(szTemp),i;
for(i=0;i<n;i++)
if(szTemp[i]!=' ')
return false;
return true;
}
int GetNum(char *p1,char *p2)
{
char *p;
int k=0;
for(p=p1+1;p<p2;p++)
k=k*10+(*p-'0');
return k;
}
int main()
{
char aReg[40001][100],szTemp[100],temp[100],*pLeft,*pRight;
int i,k,nDis=0,nRegLine=0,nReference=0,aReference[1005]={0};
memset(Dis,0,sizeof(Dis));
while(cin.getline(szTemp,100))
{
if(szTemp[0]=='[')
{
i=0;
do
{
if(IsEmptyline(szTemp))
break;
strcpy(Dis[nDis].aText[i++],szTemp);
}
while(cin.getline(szTemp,100));
nDis++;
}
else if(IsEmptyline(szTemp))
continue;
else
{
do
{
if(IsEmptyline(szTemp))
{
aReg[nRegLine++][0]='\0';
break;
}
strcpy(aReg[nRegLine++],szTemp);
}
while(cin.getline(szTemp,100));
}
}
for(i=0;i<nRegLine;i++)
{
pRight=aReg[i];
while((pLeft=strchr(pRight,'['))!=NULL)
{
pRight=strchr(pLeft,']');
k=GetNum(pLeft,pRight);
if(!aReference[k])
{
nReference++;
aReference[k]=nReference;
}
sprintf(szTemp,"%d",aReference[k]);
strcpy(temp,pRight);
strcpy(pLeft+1,szTemp);
strcat(aReg[i],temp);
}
}
for(i=0;i<nDis;i++)
{
pRight=strchr(Dis[i].aText[0],']');
k=GetNum(Dis[i].aText[0],pRight);
Dis[i].ID=aReference[k];
sprintf(szTemp,"%d",aReference[k]);
strcpy(temp,pRight);
strcpy(Dis[i].aText[0]+1,szTemp);
strcat(Dis[i].aText[0],temp);
}
qsort(Dis,nDis,sizeof(struct SDis),CompareDis);
for(i=0;i<nRegLine;i++)
cout<<aReg[i]<<endl;
if(nRegLine&&strlen(aReg[nRegLine-1])) cout<<endl;
for(i=0;i<nDis;i++)
{
k=0;
while(k<3&&strlen(Dis[i].aText[k]))
cout<<Dis[i].aText[k++]<<endl;
cout<<endl;
}
return 1;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator