#include //定义结构体 struct Student { int ID;//学号 int classes; float math_grade; float physics_grade; float English_grade; float sum; }; int main() { struct Student information[4]; //已有三个同学的信息 information[0].ID=10001;information[0].classes=11; information[0].math_grade=99.5; information[0].physics_grade=88.5; information[0].English_grade=89.5; information[1].ID=10002;information[1].classes=12; information[1].math_grade=77.9; information[1].physics_grade=56.5; information[1].English_grade=87.5; information[2].ID=10003;information[2].classes=11; information[2].math_grade=92.5; information[2].physics_grade=99.0; information[2].English_grade=60.5; //输入新同学 scanf("%d%d%f%f%f",&information[3].ID,\ &information[3].classes,&information[3].math_grade,\ &information[3].physics_grade,&information[3].English_grade); struct Student newstudent=information[3]; //判断是否已在系统里 if(newstudent.ID==information[0].ID||\ newstudent.ID==information[1].ID||\ newstudent.ID==information[2].ID)//新同学已在系统里 { for(int i=0;i<=2;i++) { if(newstudent.ID==information[i].ID) { printf("%d %d %.1f %.1f %.1f \n",\ information[i].ID,information[i].classes,\ information[i].math_grade,information[i].physics_grade,\ information[i].English_grade); } } } else//新同学不在系统里 { //排序:班级从小到大【顺便把每个人的成绩记录】 for(int i=0;i<=3;i++) { for(int j=0;j<=2;j++) { if(information[j].classes>information[j+1].classes) { struct Student tmp=information[j]; information[j]=information[j+1]; information[j+1]=tmp; } } information[i].sum=+information[i].math_grade+\ information[i].physics_grade+information[i].English_grade; } //排序 :对同一班级排序 for(int i=0;i<=3;i++) { int con=0;//记录连续了几人 for(int j=1;j<=3-i;j++) { if(information[i].classes==information[i+j].classes) {con++; } else { break; } } if(con)//有人是同班同学,在此内排序 { for(int m=i;m