//结构体应用示例――处理多个学生多门课组成的成绩表 //编一个程序,输入某个班N个人的姓名、性别、年龄、平时、笔试、操作这几项信息,计算每个人的平均成绩,按平均成绩降序排序,再输出完整的成绩表,如表所示。 //请选择相应位置的正确内容 #include "stdio.h" #include "stdlib.h" #include "string.h" #define N 5 //假设总人数为5,可根据需要修改 int main() { struct student_info//定义结构体类型 { char name[7]; //姓名 char sex[5]; //性别 unsigned int age; //年龄 int pingshi; //平时 int bishi; //笔试 int caozuo; //操作 double average; //平均 }; struct student_info stu[N+1];//定义结构体数组stu,0号元素不存放有效数据 int i,j; printf("\n输入%d个人的相关信息(姓名、性别、年龄、平时、笔试、机试):\n",N); //以下循环输入各人相关原始信息并存入结构体数组stu,同时计算各人平均成绩 for(i=1;i<=N;i++) { printf("\nNo.%d:",i); scanf("%s%s%d%d%d%d",stu[i].name,stu[i].sex,&stu[i].age,&stu[i].pingshi,&stu[i].bishi,&stu[i].caozuo); stu[i].average=(stu[i].pingshi+stu[i].bishi+stu[i].caozuo)/3.0; } //以下二重循环按平均成绩排序 for(j=1;j<=N-1;j++) for(i=j+1;i<=N;i++) [A请选择] { stu[0]=stu[j]; stu[j]=stu[i]; [B请选择] } //输出成绩表 printf("\n ******成绩表******\n"); printf(" 姓名 性别 年龄 平时 笔试 操作 平均\n"); [C请选择] printf("%8s%6s%6d%6d%6d%6d%6.2f\n",stu[i].name,stu[i].sex,stu[i].age,stu[i].pingshi,stu[i].bishi,stu[i].caozuo,stu[i].average); system("pause"); return 0; }