typedef struct
{ long num;
char name[20];
int score[2];
int total;
}stu;
stu student[100];
void main()
{ int N=0,H=0;stu *p;
void xzpx(stu*,int);
printf ("请输入本班人数");
scanf ("%d\n",&N);
printf ("学号 姓名 高数 英语 总分");
for (p=student;p<p+N;p++)
{ scanf ("%ld%s%d%d",&p->num,p->name,&p->score[0],&p->score[1]);
p->total=p->score[0]+p->score[1];
printf (" %d\n",p->total);
}
for (p=student;;)
{ printf ("请选择您要进行的操作:\n1:按总分高低排名。\n2:退出。\n");
scanf ("%d",&H);
if (H==2)break;
switch(H)
{case 1:xzpx(p,N);break;
default: ;
}
}
}
void xzpx(stu*p,int N)
{ int i,j; stu *t;
for (i=0;i<N-1;i++)
{ for (j=i+1;j<N;j++)
if ((p+i)->total<(p+j)->total)
{ t=student[i];student[i]=student[j];student[j]=t; }
}
printf ("学号 姓名 高数 英语 总分");
for (;p<p+N;p++)
printf ("%-4ld%-10s%-6d%-6d\n",p->num,p->name,p->score[0],p->score[1],p->total);
}
[此贴子已经被作者于2006-3-26 20:10:27编辑过]