整型数组按个位值排序/最低位排序(C语言)

news/2025/2/12 3:34:05/

题目描述

给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。
当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。

输入描述

  • 给定一个非空数组,其元素数据类型为32位有符号整数,数组长度[1, 1000]

输出描述

  • 输出排序后的数组

用例

输入

1,2,5,-21,22,11,55,-101,42,8,7,32

输出

1,-21,11,-101,2,22,42,32,5,55,7,8

输入

19,-31,10,57,61,27,11,28,-94

输出

10,-31,61,11,-94,57,27,28,19

代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 获取数字的十进制最低位
int getKey(int num) {num = abs(num); // 去除符号return num % 10;
}
int cmp(const void *a, const void *b) {return getKey(*(int *)a) - getKey(*(int *)b);
}int main() {char input[1000];fgets(input, 1000, stdin);input[strcspn(input, "\n")] = '\0';char *token = strtok(input, ",");int nums[1000];int count = 0;while (token != NULL) {nums[count++] = atoi(token);token = strtok(NULL, ",");}qsort(nums, count, sizeof(int), cmp);for (int i = 0; i < count; i++) {printf("%d", nums[i]);if (i < count - 1) {printf(",");}}return 0;
}

http://www.ppmy.cn/news/1361046.html

相关文章

创新性3D数据合成模型,微软推出EgoGen

随着AR、VR等设备的广泛应用,第一人称的应用开始增多。但在研发方面面临不同的挑战,例如&#xff0c;图像模糊、视觉混乱、遮挡更严重等&#xff0c;给视觉模型的训练带来重大挑战。 一方面,人工标注真实第一视角数据集&#xff0c;来培训深度学习模型的成本和难度都很高。另一…

Go slice的底层实现原理?

切片是基于数组实现的&#xff0c;它的底层是数组&#xff0c;可以理解为对 底层数组的抽象。 源码包中src/runtime/slice.go 定义了slice的数据结构&#xff1a; type slice struct {array unsafe.Pointerlen intcap int }slice占用24个字节 array: 指向底层数组的指针…

LabVIEW串口通信的激光器模块智能控制

LabVIEW串口通信的激光器模块智能控制 介绍了通过于LabVIEW的VISA串口通信技术在激光器模块控制中的应用。通过研究VISA串口通信的方法和流程&#xff0c;实现了对激光器模块的有效控制&#xff0c;解决了数据发送格式的匹配问题&#xff0c;为激光器模块的智能控制提供了一种…

使用Python制作进度条有多少种方法?看这一篇文章就够了!

前言 偶然间刷到一个视频&#xff0c;说到&#xff1a;当程序正在运算时&#xff0c;会有一个较长时间的空白期&#xff0c;谁也不知道程序运行的进度如何&#xff0c;不如给他加个进度条。 于是我今个就搜寻一下&#xff0c;Python版的进度条都可以怎么写&#xff01; 送书…

gdb调试core文件和调试正在运行中的程序

在使用GDB进行调试时&#xff0c;可以调试core文件或者正在运行中的程序。下面我将详细介绍如何使用GDB进行这两种方式的调试。 调试core文件 获取core文件 当程序由于严重错误&#xff08;如段错误&#xff09;而终止时&#xff0c;操作系统会生成一个core文件&#xff0c;其…

多人协作记账账本小程序开源版开发

多人协作记账账本小程序开源版开发 支持多人协作的记账本小程序&#xff0c;可用于家庭&#xff0c;团队&#xff0c;组织以及个人的日常收支情况记录&#xff0c;支持周月年度统计 便捷记账 便捷的记账方式&#xff0c;支持多种记账类型&#xff0c;快捷切换账本等 多账本 支…

qt-动画圆圈等待-LED数字

qt-动画圆圈等待-LED数字 一、演示效果二、关键程序三、下载链接 一、演示效果 二、关键程序 #include "LedNumber.h" #include <QLabel>LEDNumber::LEDNumber(QWidget *parent) : QWidget(parent) {//设置默认宽高比setScale((float)0.6);//设置默认背景色se…

SpringBoot和SpringCloud的区别,使用微服务的好处和缺点

SpringBoot是一个用于快速开发单个Spring应用程序的框架&#xff0c;通过提供默认配置和约定大于配置的方式&#xff0c;快速搭建基于Spring的应用。让程序员更专注于业务逻辑的编写&#xff0c;不需要过多关注配置细节。可以看成是一种快速搭建房子的工具包&#xff0c;不用从…