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 |
哪位大侠闲着没事帮我测测?老是wa, thanks#include<stdio.h> #include<string.h> #include<stdlib.h> char description[4000][241]; int description_id[4000]; int description_num; int transfer[4000]; int transfer_num; int current_count; int index[4000]; int weishu(int i) { int count=0; while(1) { count++; i/=10; if(i==0) break; } return count; } int ifemptyline(char *string) { int i; for(i=0;i<strlen(string);i++) if(string[i]!=' '&&string[i]!='\n') return 0; return 1; } void replace(char *string,int start,int end,int k) { char temp[241]; _itoa(k,temp,10); strcat(temp,&string[end]); string[start+1]='\0'; strcat(string,temp); } int main() { char line[81]; transfer_num=description_num=current_count=0; int i,j; int thenum; int start; int end=0; int flag=0;//?TDè′òó???DD memset(description,'\0',sizeof(char)*4000*241); int F; while(end||gets(line)!=NULL) { F=0; while(ifemptyline(line)) {//1y????DD F=1; if(gets(line)==NULL) { end=1; F=0; break; } } if(end==1) break; if(F&&flag) printf("\n"); i=0; while(i<strlen(line)) { if(line[i]=='[') { start=i; i++; thenum=0; while(line[i]!=']') { if(line[i]>='0'&&line[i]<='9') { thenum=thenum*10+(line[i]-'0'); i++; } else while(1); } if(start==0) {//Reference descriptions description_id[description_num]=thenum; while(!ifemptyline(line)) {//?áè?Reference descriptions // printf("%s",line); strcat(description[description_num],line); // printf("±ê??:%s\n",line); memset(line,'\0',sizeof(char)*81); if(gets(line)==NULL) { end=1; break; } } description_num++; if(end==1) break; while(ifemptyline(line)) {//1y????DD if(gets(line)==NULL) { end=1; break; } } if(end==1) break; i=0; flag=0; }//if(start==0) else { int k; for(k=0;k<transfer_num;k++) { if(transfer[k]==thenum) break; } if(k==transfer_num) { transfer[transfer_num++]=thenum; } replace(line,start,i,k+1); } }//line[i]==']' else i++; } printf("%s",line); flag=1; } for(i=0;i<transfer_num;i++) { for(j=0;j<description_num;j++) { if(description_id[i]==transfer[j]) break; } index[i]=j; } printf("\n"); for(i=0;i<transfer_num-1;i++) { replace(description[index[i]],0,weishu(description_id[index[i]])+1,i+1); printf("%s\n",description[index[i]]); } if(i<transfer_num) { replace(description[index[i]],0,weishu(description_id[index[i]])+1,i+1); printf("%s",description[index[i]]); } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator