N个小于10000的正整数,按除以3的余数从小到大排序,如果余数相等,按正整数的值从小到大排序。
输入方式:第一行输入一个正整数N(N<101)
第二行为用空格隔开的N个正整数,均小于10000
输出数值用空格隔开
#include <cstdio>
#include <algorithm>
using namespace std;
int num[105];
bool cmp(int x,int y){ //定义cmp排序函数 可以自定义
if(x%3!=y%3){
return x%3<y%3;
}else{
return x<y;
}
}
int main(){
int N;
scanf("%d",&N);
for(int i=0;i<N;i++){
scanf("%d",&num[i]);
}
sort(num,num+N,cmp); //调用cmp函数
for(int i=0;i<N;i++){
if(i!=N-1){
printf("%d",num[i]);
} else{
printf("%d\n",num[i]);
}
}
return 0;
}
结果