社区讨论

第八点错,样例包对

P1093[NOIP 2007 普及组] 奖学金参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m628pu5h
此快照首次捕获于
2025/01/18 21:44
去年
此快照最后确认于
2025/11/04 11:21
4 个月前
查看原帖
第八个点错,样例对。
CPP
#include<bits/stdc++.h>
using namespace std;
struct Student{int score,chinese,number;}students[310];                //定义学生结构体
int n,maths,english;    //math:数学成绩   english:英语成绩
bool cmp(Student a,Student b){
	if(a.score!=b.score)return a.score>b.score;       //比总分
	if(a.chinese!=b.chinese)return a.chinese>b.chinese;           //比语文
	else return a.number>b.number;            //比学号
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d%d",&students[i].chinese,&maths,&english);       //输入三科成绩
		students[i].number=i;             //定义学号
		students[i].score=students[i].chinese+maths+english;          //计算总分
	}
	sort(students+1,students+n+1,cmp);            //排序
	for(int i=1;i<=5;i++)printf("%d %d\n",students[i].number,students[i].score);     //输出
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...