LXYlxy666

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
#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;
}

  

posted on 2023-02-22 23:48  printf("赖狒狒");  阅读(15)  评论(1编辑  收藏  举报