第1个回答 2012-04-03
#include<stdio.h>
#include<stdlib.h>
struct student
{
int num;
char name[10];
int score[3];
int sum;
}stu[5],t;
void main()
{
int i, j;
float ave;
printf("请输入五个学生的信息\n");
for(i=0;i<5; i++) //输入信息
{
printf("\n请输入第%d个学生的信息\n",i+1);
printf("学号: ");
scanf("%d",&stu[i].num);
printf("姓名: ");
scanf("%s",&stu[i].name);
for(j=0;j<3;j++)
{
printf("第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
}
}
system("cls");
printf("学号\t姓名\t总分\t平均分\n");
for(i=0;i<5;i++)
{
int sum;
stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
ave=(float)stu[i].sum/3;
printf("%d\t%s\t%d\t%5.2f\n",stu[i].num,stu[i].name,stu[i].sum,ave);
}
int k=0;
while(k<5)
{i=0;
while(i<5)
{
if(stu[i].sum<stu[i+1].sum)
{
t=stu[i];
stu[i]=stu[i+1];
stu[i+1]=t;
i++;
}
else
{
i++;
}
}
k++;
}
printf("\n排名如下:\n\n");
printf("学号\t姓名\t课程1\t课程2\t课程3\t总分\n");
for(i=0;i<5;i++)
{
printf("%d\t%s\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum);
}
}
//如果不明白可以问我,我调试过了,没有问题,希望能帮到你。