5371:【202112二级】按照个位数排序(2)
描述
对于给定的正整数序列,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序。
输入
第一行1个整数n,表示序列的大小。( 0<n≤1000)
第二行n个正整数,表示序列的每个数,每个数不大于100000000。
输出
输出按照题目要求排序后的序列
输入样例 1
6
17 23 9 13 88 10
输出样例1
10 13 23 17 88 9
#include<bits/stdc++.h>
using namespace std;
struct num{
int a;
int g;
}s[100];
bool cmp(num a,num b){
if(a.g<b.g)
return a.g;
if(a.g>b.g)
return b.g;
if(a.a>b.a)
return b.a;
return a.a;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i].a;
s[i].g=s[i].a%10;
}
sort(s+1,s+1+n,cmp);
for(int i=1;i<=n;i++){
cout<<s[i].a<<" ";
}
return 0;
}
这是代码,到底哪里错了,不能按条件输出。