求助大佬,如题
  • 板块学术版
  • 楼主魑魅魍魉唬
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/3/2 15:12
  • 上次更新2024/3/2 17:13:55
查看原帖
求助大佬,如题
317218
魑魅魍魉唬楼主2024/3/2 15:12

输入学生学号,姓名,三个成绩,计算总和和平均成绩,输出学生信息,每行一个学生,然后按总成绩高低输出学生信息。 程序只有输出第一个是最高的,剩下的都是顺序都是乱的,不知道哪里错了,求大佬们帮忙看看

#include<bits/stdc++.h>
using namespace std;
struct student{
	char name[10];
	int sno;
	float yu,shu,ying,sum,avg;
};
bool cmp(student a,student b){//按总成绩进行排序函数
	if(a.sum>b.sum){
		return a.sum;}
	else{
		return b.sum;}
}
int main(){
	student s[3];
	for(int i=0;i<3;i++){
		cin>>s[i].name>>s[i].sno>>s[i].yu>>s[i].shu>>s[i].ying;
	}
	for(int j=0;j<3;j++){
		s[j].sum=s[j].yu+s[j].shu+s[j].ying;
		s[j].avg=s[j].sum/3;
	}
	sort(s,s+3,cmp);
	for(int i=0;i<3;i++){
		cout<<s[i].name<<" "<<"00"<<s[i].sno<<" "<<s[i].yu<<" "<<s[i].shu<<" "<<s[i].ying<<" "<<s[i].sum<<" "<<s[i].avg<<endl;
	}
	return 0;
}
2024/3/2 15:12
加载中...