新手疑问 学号排序总是错 无论怎么改都有几个点错
查看原帖
新手疑问 学号排序总是错 无论怎么改都有几个点错
386737
Mei_Misaki楼主2020/12/3 16:39

学号排序很诡异
不管怎么搞都一样
改大改小都不可以\ 望各位大佬给我指点指点

#include<bits/stdc++.h> 
using namespace std; 
struct ch{
	int zong,xue,yv; 
}; 
ch a[1000]; 
int main(){
	int n; 
	cin>>n; 
	for(int i=0;i<n;i++){
		int yv,shu,ying; 
		cin>>yv>>shu>>ying; 
		a[i].yv=yv; 
		a[i].xue=i+1; 
		a[i].zong=yv+shu+ying;
	}
	for(int i=n-1;i>0;i--){
		for(int j=0;j<i;j++){
			if(a[j].zong<a[j+1].zong){
				swap(a[j],a[j+1]);
			} 
			else if(a[j].zong==a[j+1].zong){
				if(a[j].yv<a[j+1].yv){
					swap(a[j],a[j+1]);
				} 
				else if(a[j].yv==a[j].yv){
					if(a[j].xue>a[j+1].xue){
						swap(a[j],a[j+1]);
					}
				}
			}
		}
	}
	for(int i=0;i<5;i++){
		cout<<a[i].xue<<' '<<a[i].zong<<endl;
	}
	return 0;
}
2020/12/3 16:39
加载中...