#include<stdio.h> struct student{ //定义一个结构体数组 int num; char name[11]; float g1; float g2; float g3; float aver; }; int main(){ student stu[101],s;//student为结构体类型,stu为名字,此处定义一个结构体数组 int N,i,j; scanf("%d\n",&N); for(i=0;i<N;i++){ scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].g1,&stu[i].g2,&stu[i].g3);//结构体内容的输入stu[].什么元素(注意对应的变量类型(字符串为%s)) stu[i].aver=(stu[i].g1+stu[i].g2+stu[i].g3)/3; } for(i=0;i<N-1;i++){ for(j=i+1;j<N;j++){ if(stu[i].aver<=stu[j].aver) { s=stu[i];stu[i]=stu[j];stu[j]=s; } if(stu[i].aver==stu[j].aver){ //如果平均成绩一样,按照学号从小到大排 if(stu[i].num>stu[j].num){ s=stu[i];stu[i]=stu[j];stu[j]=s; } } } } for(i=0;i<N;i++){ printf("%d %s %.1f\n",stu[i].num,stu[i].name,stu[i].aver);//结构体对应内容的输出 } return 0; }
标签:student,int,西电,float,stu,oj245,数组,结构 From: https://www.cnblogs.com/LXYlxy666/p/17146453.html