这题该怎么做?我感觉我逻辑没错呀
查看原帖
这题该怎么做?我感觉我逻辑没错呀
308987
可乐爽楼主2020/7/3 18:13

代码如下

#include<bits/stdc++.h> 
using namespace std;
const int maxn=10000000; 
struct  stu{
    int num;
    int yw,sx,yy; 
    int sum;
};
struct stu a[maxn],tmp;
int n,l;
int main()   {	
	cin>>n;
	for(int i=1;i<=n;i++)	{
		cin>>a[i].yw>>a[i].sx>>a[i].yy;
		a[i].num=i;
		a[i].sum=a[i].yw+a[i].sx+a[i].yy;
	}	
	for(int i=1;i<=n-1;i++){
		for(int j=1;j<=n-i;i++){
			if((a[j].sum>a[j+1].sum)
			||(a[j].sum==a[j+1].sum && a[j].yw>a[j+1].yw)
			||(a[j].sum==a[j+1].sum && a[j].yw==a[j+1].yw && a[j].num<a[j+1].num)){
				tmp=a[j];
				a[j]=a[j+1];
				a[j+1]=tmp;			
			}
		}
	}
	for(int i=1;i<=5;i++)	{
		cout<<a[n-i+1].num<<" "<<a[n-i+1].sum<<endl;
	}	
	return 0;       
 }
# 
2020/7/3 18:13
加载中...