这个是我写的一个小程序,我想按生日的大小生日排列,可是用以下程序不能达到要求,请问是我哪段代码有问题,请高手指点! birthday是生日!
struct student
{ char num[6];
char name[8];
char birthday[10];
int score[4];
}stu[2];
main()
{int i,j,k;
char p[10];
char *p1[10],*p2[10];
for(i=0;i<2;i++)
{ printf("\n please input No. %d score:\n",i+1);
printf("stuNo:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
printf("birthday:");
scanf("%s",stu[i].birthday);
for(j=0;j<3;j++)
{ printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);}
}
for(k=0;k<3;k++)
{ p[k]=stu[k].birthday;}
if(strcmp(p[1],stu[2].birthday)>0)swap(stu[1],stu[2]);
if(strcmp(p[2],stu[3].birthday)>0)swap(stu[2],stu[3]);
if(strcmp(p[3],stu[4].birthday)>0)swap(stu[3],stu[4]);
printf("NO. name birthday score1 score2 score3\n");
for(i=0;i<2;i++)
{printf("%s%8s%10s",stu[i].num,stu[i].name,stu[i].birthday);
for(j=0;j<3;j++)
printf("%8d",stu[i].score[j]);
printf("\n");}
}
swap(char &p1,char &p2)
{char *p3[10];
strcpy(p3,p1);strcpy(p1,p2);strcpy(p2,p3);
}