80分WA,6和8过不去改了半小时了,大佬救命o(╥﹏╥)o
查看原帖
80分WA,6和8过不去改了半小时了,大佬救命o(╥﹏╥)o
908952
Gaozhongsheng楼主2023/6/5 17:45
#include<bits/stdc++.h>
using namespace std;
struct student{
	int id;
	int Chinese,Math,English;
	int sum;
}stu[310];
bool cmp(student a,student b){
	return a.sum>b.sum;
}
int main(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		stu[i].id=i;
		cin>>stu[i].Chinese>>stu[i].Math>>stu[i].English;
		stu[i].sum=stu[i].Chinese+stu[i].Math+stu[i].English;
	}
	sort(stu+1,stu+n+1,cmp);
	for(int i=1;i<=n;i++){
		if(stu[i].sum==stu[i+1].sum){
			//总分相同语文成绩<后面,学号互换
			if(stu[i].Chinese<stu[i+1].Chinese){
				int cnt=stu[i].id;
				stu[i].id=stu[i+1].id;
				stu[i+1].id=cnt;
			}
			if(stu[i].Chinese==stu[i+1].Chinese&&stu[i].id>stu[i+1].id){
				//都一样学号小的在前面
				int opt=stu[i].id;
				stu[i].id=stu[i+1].id;
				stu[i+1].id=opt;
			}
		}
	}
	for(int i=1;i<=5;i++){
		printf("%d %d\n",stu[i].id,stu[i].sum);
	}
	
	return 0;
}
2023/6/5 17:45
加载中...