社区讨论

六,八点过不去

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

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@lo930d3j
此快照首次捕获于
2023/10/28 04:44
2 年前
此快照最后确认于
2023/10/28 04:44
2 年前
查看原帖
6,8点过不去
CPP
#include<bits/stdc++.h>
using namespace std;
struct student{
	int H,C,M,E,Z;//学号,语,数,英,总分 
};
student a[305];
int main()
{
	int n,num;
	cin>>n;
	for(int i=1;i<=n;i++)
		{
			cin>>a[i].C;cin>>a[i].M;cin>>a[i].E;
			a[i].Z=a[i].C+a[i].M+a[i].E;
			a[i].H=i;
		}	//输入
	for(int i=1;i<=n;i++)
	{
		//每次循环完结果为将:最大移到最后(即n-i个),其余往前移一个
		for(int j=1;j<=n-i;j++)
		{	if(a[j].Z<a[j+1].Z)
			{
				num=a[j+1].Z;
				a[j+1].Z=a[j].Z;
				a[j].Z=num;
				num=a[j+1].H;
				a[j+1].H=a[j].H;
				a[j].H=num;
			}
			if(a[j].Z==a[j+1].Z)
			{
				if(a[j].C<a[j+1].C)
				{
					num=a[j+1].Z;
					a[j+1].Z=a[j].Z;
					a[j].Z=num;
					num=a[j+1].H;
					a[j+1].H=a[j].H;
					a[j].H=num;
				}
				if(a[j].C==a[j+1].C)
				{
					if(a[j].H>a[j+1].H)
					{
					num=a[j+1].H;
					a[j+1].H=a[j].H;
					a[j].H=num;
					}
				}
			}
				
		} 
	}
		//每次循环完结果为将:最大移到最后(即n-i个),其余往前移一个
	for(int i=1;i<=5;i++)
		cout<<a[i].H<<" "<<a[i].Z<<endl;
}

回复

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

正在加载回复...