20分代码求调
查看原帖
20分代码求调
942924
ZhangShuyuan_benren楼主2023/11/25 21:25
#include<bits/stdc++.h>
using namespace std;
struct sbxxzsy{
	int name;
	float achievement;
};
sbxxzsy a[5005];
/*bool cmp(sbxxzsy zz,sbxxzsy ss){
	if(zz.achievement>ss.achievement) return 1;
	if(zz.achievement==ss.achievement && zz.name<ss.name) return 1;
	return 0;
}*/
int main()
{
	int n,m,sum=0;
	double zhi;
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>a[i].name>>a[i].achievement;
	}
	for(int i=0;i<n;i++)
		for(int j=n;j>i;j--)
		{
			if(a[j].achievement>a[j-1].achievement)
			{
				swap(a[j].achievement,a[j-1].achievement);
				swap(a[j].name,a[j-1].name);
			}
		}
	for(int i=0;i<n;i++)
	{
		if(a[i].achievement==a[i+1].achievement && a[i].name>a[i+1].name){
			swap(a[i].name,a[i+1].name);
			swap(a[i].achievement,a[i+1].achievement);
		}
			
	}
	/*for(int i=0;i<n;i++)
		cout<<a[i].name<<"\n";*/
	zhi=a[int(m*1.5)].achievement;
	for(int i=0;i<n;i++)
		if(a[i].achievement>=zhi) sum++;
	cout<<zhi<<' '<<sum<<endl; 
	for(int i=0;i<sum;i++)
	{
		cout<<a[i].name<<' '<<a[i].achievement<<endl;
	}
	return 0;
}

本题用的结构体写的(本来用的cmp和sort快排,结果智慧的老师让写冒泡)

2023/11/25 21:25
加载中...