定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩。
从键盘输入10个学生的以上内容。
输出单门课成绩最高的学生的学号、姓名、以及该门课程的成绩。
输出三门课程的平均分数最高的学生的学号、姓名及其平均分
将10个学生按照平均分数从高到低进行排序,输出结果,格式如下所示:
number name math Chinese English average
103 tom 90 90 100 95
101 alice 90 80 70 80
#include
structstudent{
int number;
char name[20];
float Chinese;
float math;
float English;
float average;
}stu[10];
voidinput (struct student stu[10])//输入函数
{
int i;
printf("输入10个学生的信息\n");
for(i=0;i<10;i++)
scanf("%8d%8s%8f%8f%8f",&stu[i].number,stu[i].name,&stu[i].Chinese,&stu[i].math,&stu[i].English);
}
voidprint1(struct student stu[10])//输出学生初始信息
{
int i;
printf("初始信息\n");
for(i=0;i<10;i++)
{
printf("%8d%8s%8.2f%8.2f%8.2f",stu[i].number,stu[i].name,stu[i].Chinese,stu[i].math,stu[i].English);
printf("\n");
}
}
voidprint2(struct student stu[10])//输出三科最高分学生的信息
{
struct student stu1;
int i,j;
for(j=1;j<10;j++)
for(i=0;i<10-j;i++)
{
if(stu[i].Chinese
{
stu1=stu[i];
stu[i]=stu[i+1];
stu[i+1]=stu1;
}
}
printf("Chinese 最高分为:");//Chinese最高分
printf("%8d%8s%8.2f",stu[0].number,stu[0].name,stu[0].Chinese);
printf("\n");
for(j=1;j<10;j++)
for(i=0;i<10-j;i++)
{
if(stu[i].math
{
stu1=stu[i];
stu[i]=stu[i+1];
stu[i+1]=stu1;
}
}
printf("math 最高分为: ");//math最高分
printf("%8d%8s%8.2f",stu[0].number,stu[0].name,stu[0].math);
printf("\n");
for(j=1;j<10;j++)
for(i=0;i<10-j;i++)
{
if(stu[i].English
{
stu1=stu[i];
stu[i]=stu[i+1];
stu[i+1]=stu1;
}
}
printf("English 最高分为:");//English最高分
printf("%8d%8s%8.2f",stu[0].number,stu[0].name,stu[0].English);
printf("\n");
}
voidprint3(struct student stu[10])//输出平均分最高的学生的信息
{
int i,j;
struct student stu1;
for(i=0;i<10;i++)
stu[i].average=(stu[i].Chinese+stu[i].math+stu[i].English)/3;
for(j=1;j<10;j++)//进行排序
for(i=0;i<10-j;i++)
{
if(stu[i].average
{
stu1=stu[i];
stu[i]=stu[i+1];
stu[i+1]=stu1;
}
}
printf("平均分最高为 :");
printf("%8d%8s%8.2f",stu[0].number,stu[0].name,stu[0].average);
printf("\n");
}
voidprint4()
{
printf(" number name Chinese math English average\n");
}
voidprint5(struct student stu[10])//输出按平均分排序后的学生信息
{
int i;
printf("排序后\n");
for(i=0;i<10;i++)
{
printf("%8d%8s%8.2f%8.2f%8.2f%8.2f",stu[i].number,stu[i].name,stu[i].Chinese,stu[i].math,stu[i].English,stu[i].average);
printf("\n");
}
}
intmain()
{
input(stu);
print1(stu);
print2(stu);
print3(stu);
print4(stu);
print5(stu);
}