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:为什么是WA呢In Reply To:为什么是WA呢 Posted by:JLKJ_ZHUSHAN at 2010-07-28 15:27:57 > #include<stdio.h> > #include<string.h> > > #define MAN 101 > > char son_n[MAN][20],dady_n[MAN][20]; > int son_age[MAN],sonb[MAN]; > int n,m; > > int cal_age(char dady[]) > { > int i,j; > int father_age,father_num; > if(!strcmp(dady,"Ted")) > return 100; > else > { > for(i=1;i<=m;i++) > { > if(!strcmp(dady,son_n[i])) > { > father_age=son_age[i]; > father_num=i; > } > } > if(father_age>0) > { > return father_age; > } > else > { > > father_age=cal_age(dady_n[father_num])-sonb[father_num]; > return father_age; > } > } > } > void sort() > { > int i,j; > char temp_n[20]; > int temp; > for(i=1;i<m;i++) > { > for(j=i+1;j<=m;j++) > { > if((son_age[i]<son_age[j])||(son_age[i]==son_age[j]&&strcmp(son_n[i],son_n[j])>1)) > { > strcpy(temp_n,son_n[i]); > strcpy(son_n[i],son_n[j]); > strcpy(son_n[j],temp_n); > temp=son_age[i]; > son_age[i]=son_age[j]; > son_age[j]=temp; > } > } > } > } > int main() > { > int i,j; > > > scanf("%d",&n); > for(i=1;i<=n;i++) > { > scanf("%d",&m); > for(j=1;j<=m;j++) > { > scanf("%s %s %d",dady_n[j],son_n[j],&sonb[j]); > } > for(j=1;j<=m;j++) > { > son_age[j]=cal_age(dady_n[j])-sonb[j]; > } > sort(son_n,son_age); > printf("DATASET %d\n",i); > for(j=1;j<=m;j++) > { > printf("%s %d\n",son_n[j],son_age[j]); > } > } > return 0; > } > > > 我用的是递归调用,每次求出父亲的年龄后再求出儿子的。还有什么好的方法吗? Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator