睡觉觉觉得 2023-08-08 15:39 采纳率: 85.2%
浏览 26
已结题

关于#c++#的问题:对于给定的正整数序列,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序

按照个位数排序
描述

对于给定的正整数序列,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序。

输入
第一行1个整数n,表示序列的大小。 ( 0<n <=1000)第二行n个正整数,表示列的每个数,每个数不大于100000000.

输出
按照题目要求排序后的序列 .

输入样例 1

6
17 23 9 13 88 10
输出样例 1

10 13 23 17 88 9
语言:
C++
这是我的代码,我自己测的时候是对的,但不知道为什么过不了?
求各位帅哥美女AI们修改


#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    long long a[n],b[n];
    for(int i=0;i<n;i++){
        cin>>a[i];
        b[i]=a[i]%10;    
    }
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if(b[i]>b[j]){
                swap(b[i],b[j]);
                swap(a[i],a[j]);
            }else if(b[i]==b[j]){
                if(a[i]>a[j]){
                    swap(a[i],a[j]);
                }
            }
        }
    }
    for(int i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}
  • 写回答

4条回答 默认 最新

  • CSDN专家-sinJack 2023-08-08 16:31
    关注
    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std; 
    // 自定义比较函数
    bool compare(int a, int b) {
        if (a % 10 == b % 10) {
            return a < b;
        }
        return a % 10 < b % 10;
    }
    
    int main() {
        int n;
        cin >> n;
        vector<int> nums(n);
        for (int i = 0; i < n; i++) {
            cin >> nums[i];
        }
        sort(nums.begin(), nums.end(), compare);
        for (int i = 0; i < n; i++) {
            cout << nums[i] << " ";
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月10日
  • 已采纳回答 8月8日
  • 创建了问题 8月8日

悬赏问题

  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因
  • ¥15 NRF24L01能发送但是不能接收