| ||||||||||
| 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 | |||||||||
Re:为什么总是PE啊?帮忙看看。In Reply To:Re:为什么总是PE啊?帮忙看看。 Posted by:cpp00548166 at 2006-03-16 17:33:25 因为你如果出现有一行全是空格
那么也算一个空行
把你的程序修改一下,ac
#include<stdio.h>
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
short index[10000];
bool isetyline(const char* line)
{
int n=0;
while(*(line+n))
{
if(*(line+n)!=' ')
return false;
n++;
}
return true;
}
void main()
{
short count=0;
char temp[81];
short reindex[10000];
char* refer[10000];//注释段指针
char number[6];
short length=0;
while(gets(temp))
{
if(isetyline(temp))//段间隔空行
continue;
//新注释段
if(temp[0]=='[')
{
for(short i=1;temp[i]!=']';i++)
number[i-1]=temp[i];
number[i-1]='\0';
char *referpara=new char[243];
refer[atoi(number)]=referpara;
short len=strlen(temp);
i++;
for(short j=0;i<len;i++,j++)
referpara[j]=temp[i];
referpara[j]='\n';
j++;
referpara[j]='\0';
while(gets(temp))
{
if(temp[0]=='\0')//段间隔空行
break;
strcat(referpara,temp);
strcat(referpara,"\n");
}
continue;
}
//正文段
do
{
if(isetyline(temp))//段间隔空行
break;
short len=strlen(temp);
for(short i=0;i<len;i++)
{
if(temp[i]=='[')
{
i++;
for(short j=0;temp[i]!=']';j++,i++)
number[j]=temp[i];
number[j]='\0';
short num=atoi(number);
if(index[num]==0)//还未注册的索引号
{
count++;
index[num]=count;
reindex[count]=num;
}
printf("[%d]",index[num]);
}
else
printf("%c",temp[i]);
}
printf("\n");
}while(gets(temp));
printf("\n");
}
for(short i=1;i<=count;i++)
printf("[%d]%s\n",i,refer[reindex[i]]);
printf("\n");
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator