求助(有注释版)
查看原帖
求助(有注释版)
1460836
Retribution321楼主2024/11/22 16:07
#include<bits/stdc++.h>
using namespace std;
#define pzq(a,b,c) for(int a=b;a<c;a++)
#define qzp(a,b,c) for(int a=b;a>=c;a--)

struct chengji{
		int chinese,math,english;
	};
int main(){
	int n;
	cin>>n;
	chengji a[n+1];int score[n+1];
	pzq(i,1,n+1){
		cin>>a[i].chinese>>a[i].math>>a[i].english;
		score[i]=a[i].chinese+a[i].math+a[i].english;//输入数据,统计总分 
	}
	int num=0,ans=0;//用于储存最高分和对应号码 
	pzq(i,1,6){//循环输出5次 
		pzq(j,1,n+1){//每个成绩和最高分比较,高于最高分则替换为最高分 
			if(score[j]>ans)ans=score[j];num=j;continue;
			if(score[j]==ans){//总分相同时,比较语文成绩 
				if(a[num].chinese>=a[j].chinese)continue;//由于由编号小到编号大比较,因此同分时无需操作 
				if(a[num].chinese<a[j].chinese)num=j;continue;//将语文成绩高的编号记为最高分的编号 
			}
			else continue;
		}
		cout<<num<<" "<<ans<<endl;//输出最高分和编号 
		score[num]=0;
		num=0;ans=0;//将本次最高分变为0分,去重 
	}
	return 0;
}
2024/11/22 16:07
加载中...