求助站外题
  • 板块灌水区
  • 楼主_QrSn_
  • 当前回复16
  • 已保存回复16
  • 发布时间2023/2/21 13:04
  • 上次更新2023/10/24 00:12:04
查看原帖
求助站外题
511253
_QrSn_楼主2023/2/21 13:04
题目描述
输入一行整数,按绝对值大小从大到小排列,绝对值一样的,负在排后面
输入
3 -2 -5 6
输出
6 -5 3 -2
样例输入 Copy
5 -5 -3 3
样例输出 Copy
5 -5 3 -3
#include<bits/stdc++.h>
using namespace std;
int n=4,a[114514];
bool cmp(int x,int y)
{
	 if(abs(x)==abs(y))
	 {
	 	if(x<0)return y+1>x;
	 	else if(y<0)return x+1>y;
	 }
	 else if(abs(x)>abs(y))return abs(x)>abs(y);
	 else if(abs(x)<abs(y))return abs(y)>abs(x);
}
int main(){
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	sort(a,a+n,cmp);
	for(int i=0;i<n;i++)
	{
		cout<<a[i]<<" ";
	}
	return 0;
} 

最后面的两个数排不了

2023/2/21 13:04
加载中...