洛谷 P1093 [NOIP2007 普及组] 奖学金 AC代码 2022 01 28(C++)

题目来源:

P1093 [NOIP2007 普及组] 奖学金 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)洛谷 P1093 [NOIP2007 普及组] 奖学金 AC代码 2022 01 28(C++)https://www.luogu.com.cn/problem/P1093代码:

//洛谷 P1093 [NOIP2007 普及组] 奖学金 AC代码 2022 01 28(C++)
#include<bits/stdc++.h>
using namespace std;
struct s{
	int chi;  //语文成绩 
	int mat;  //数学成绩 
	int eng;  //英语成绩 
	int num;  //成绩总和 
	int nom;  //输入顺序 
}a[310];
int n,maxn,maxl;  //maxn,maxl 为排序做准备 
int main(){
	//输入 
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].chi>>a[i].mat>>a[i].eng;
		a[i].nom=i;                          //记录输入顺序 
		a[i].num=a[i].chi+a[i].mat+a[i].eng; //记录总分 
	}
	//排序 
	//采用找最大值与当前数交换的方法 
	for(int i=1;i<n;i++){
		maxn=a[i].num;
		maxl=i;
		for(int o=i+1;o<=n;o++){
			if(a[o].num>maxn){
				maxn=a[o].num;
				maxl=o;
			}
			else if(a[o].num==maxn){
				if(a[maxl].chi<a[o].chi){
					maxn=a[o].num;
					maxl=o;
				}
			}
		}
		swap(a[i],a[maxl]);
	}
	//输出 
	for(int i=1;i<=5;i++){
		printf("%d %d\n",a[i].nom,a[i].num);
	}
	return 0;
} 

有一丢丢复杂 

上一篇:php微信开发接入指南


下一篇:洛谷P5357 【模板】AC 自动机(二次加强版)题解