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

2022/1/28 20:07:36

本文主要是介绍洛谷 P1093 [NOIP2007 普及组] 奖学金 AC代码 2022 01 28(C++),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目来源:

P1093 [NOIP2007 普及组] 奖学金 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)icon-default.png?t=M0H8https://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;
} 

有一丢丢复杂 



这篇关于洛谷 P1093 [NOIP2007 普及组] 奖学金 AC代码 2022 01 28(C++)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程