【C语言】拆数字组成最大数

相信你是最棒哒!!!

文章目录

题目描述

正确代码

法一注释版

简洁版

法二注释版

简洁版


题目描述

任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。

输入描述

自然数 n

输出描述

各位数字组成的最大数

样例输入
1593
样例输出
9531

正确代码

法一注释版
#include<stdio.h> int main () { int n,i,j,q,a[50]; // 声明变量n用于存储输入的数字,i、j、q用于循环,a[50]是一个数组,用于存储数字的每一位scanf("%d",&n); // 读取nfor(i=0;; i++) { // 一个无限循环,用于分解数字n的每一位a[i]=n%10; // 取n的最后一位数字,即n除以10的余数,存储在数组a的第i个位置n=n/10; // 将n除以10,去掉最后一位数字if (n==0) // 如果n变为0,说明数字已经被完全分解break; // 跳出循环}int t; // 声明一个临时变量t,用于交换数字for(j=1; j<i; j++) { // 外层循环,控制排序的轮数,从1开始,因为第0位不需要排序for(q=0; q<=i-j; q++) { // 内层循环,用于比较并交换相邻的数字if(a[q]<a[q+1]) { // 如果当前位置的数字小于下一个位置的数字t=a[q]; // 交换两个数字a[q]=a[q+1];a[q+1]=t;}}}for(q=0; q<=i; q++) // 循环输出排序后的数字printf("%d",a[q]); // 打印数组a中的每个元素
} // 主函数的结束
简洁版
#include<stdio.h>
int main () {int n,i,j,q,a[50];scanf("%d",&n);for(i=0;;i++) {a[i]=n%10;n=n/10;if (n==0)break;}int t;for(j=1; j<i; j++) {for(q=0; q<=i-j; q++) {if(a[q]<a[q+1]) {t=a[q];   a[q]=a[q+1];a[q+1]=t;}}}for(q=0;q<=i;q++)printf("%d",a[q]);       
}
法二注释版
#include <stdio.h>  // 包含标准输入输出库,用于scanf和printf函数
#include <stdlib.h> // 包含标准库,提供qsort函数
#include <string.h> // 包含字符串处理库,提供strlen函数// 比较函数,用于qsort比较两个元素的大小
int compare(const void *a, const void *b) {return *(char *)b - *(char *)a; // 如果b指向的字符大于a指向的字符,则返回正数;如果小于,则返回负数;如果相等,则返回0
}int main() {char a[50]; // 声明一个字符数组scanf("%s", &a); // 读取一个字符串aint l = strlen(a); // 使用strlen函数计算字符串a的长度,并存储在变量l中qsort(a, l, sizeof(char), compare); // 使用qsort函数对字符串a进行排序// a是要排序的数组的首地址// l是要排序的元素个数// sizeof(char)指定每个元素的大小,这里是1,因为a是字符数组// compare是自定义的比较函数,用于告诉qsort如何比较两个元素printf("%s\n", a); // 打印排序后的字符串return 0; // 程序正常结束
}
简洁版
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int compare(const void *a, const void *b) {return *(char *)b - *(char *)a;
}int main() 
{char a[50];scanf("%s",&a);int l=strlen(a);qsort(a, l, sizeof(char), compare); printf("%s\n", a); return 0;
}

总结

这段代码的主要功能是读取用户输入的一个字符串,然后使用 qsort 函数对这个字符串中的字符进行升序排序,并输出排序后的结果。qsort 是一个通用的排序函数,它可以对任何类型的数组进行排序,只要提供了正确的比较函数。在这个例子中,比较函数 compare 被设计为按照字符的ASCII值进行比较,从而实现字符的升序排序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/63897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android14 AOSP 允许system分区和vendor分区应用进行AIDL通信

在Android14上&#xff0c;出于种种原因&#xff0c;system分区的应用无法和vendor分区的应用直接通过AIDL的方法进行通信&#xff0c;但是项目的某个功能又需要如此。 好在Binder底层其实是支持的&#xff0c;只是在上层进行了屏蔽。 修改 frameworks/native/libs/binder/Bp…

汽车车牌识别数据集,支持YOLO,COCO,VOC格式的标注,8493张图片,可识别多种环境下的车牌

汽车车牌识别数据集&#xff0c;支持YOLO&#xff0c;COCO&#xff0c;VOC格式的标注&#xff0c;8493张图片&#xff0c;可识别多种环境下的车牌 数据集分割 训练组82&#xff05; 6994图片 有效集12&#xff05; 999图片 测试集6% 500图片 预处理 自动…

【Golang】如何读取并解析SQL文件

一、背景 在数据库开发与维护过程中&#xff0c;我们经常需要执行大量的SQL语句。有时&#xff0c;这些SQL语句会被保存在一个文件中&#xff0c;以便于批量执行。为了方便地在Go语言中处理这些SQL文件&#xff0c;我们可以编写一个函数来读取并解析SQL文件中的语句。 二、实…

uniapp中打包应用后,组件在微信小程序和其他平台实现不同的样式

今天&#xff0c;我们来介绍一下&#xff0c;uniapp中如何实现打包应用后&#xff0c;组件在微信小程序和其他平台不同的样式&#xff0c;在这里&#xff0c;我们使用背景颜色进行演示&#xff0c;使用 UniApp 提供的 uni.getSystemInfoSync() 方法来获取系统信息&#xff0c;包…

奇奇怪怪的错误-Tag和space不兼容

报错信息如下&#xff1a; TabError: inconsistent use of tabs and spaces in indentation make: *** [Makefile:24: train] Error 1不能按Tab&#xff0c;要老老实实按space 不过可以在编辑器里面改&#xff0c;把它们调整成一致的&#xff1b;

TCP客户端模拟链接websocket服务端

因一些特殊原因研究了下TCP模拟链接websocket。原理上可以连接但具体怎么连接怎么操作就不知道了&#xff0c;需要研究下&#xff0c;以下是个人研究的方案。 用线上和本地地址来做例子&#xff1a; 线上wss地址&#xff1a;wss://server.cs.com/cs/vido/1 本地地址ws://127…

vscode借助插件调试OpenFoam的正确的.vscode配置文件

正确的备份文件位置&#xff1a; /home/jie/桌面/理解openfoam/正确的调试爆轰单进程案例/mydebugblastFoam 调试爆轰案例流体 并且工作区和用户区都是openfoam-7版本 问题&#xff1a;F5以debug模式启动后不停在断点 解决方法&#xff1a; 这里备份一下.vsode正确的配置&…

小程序 - 音乐播放器

微信小程序常用API练习 - 音乐播放器小程序开发笔记 目录 音乐播放器 准备工作 创建项目 配置导航栏 资源文件准备 服务器准备 音乐播放器首页 首页页面 音乐推荐页 播放器页面 播放列表 首页样式 首页脚本实现 功能截图 总结 音乐播放器 “音乐播放器”微信小…

C++ 泛编程—— 自动推导类型 auto

C 自动推导类型 auto 自动推导类型函数模板类模板 C泛编程&#xff0c;也叫通用编程。包括三方面内容&#xff1a; 自动推导类型、 函数模板、 类模板。 自动推导类型 在C11中&#xff0c;赋予了auto全新的含义&#xff0c;不再用于修饰变量&#xff0c;而是作为一个类型指…

【数据分享】2014-2024年我国AOI兴趣面数据(免费获取/来源于OSM地图)

AOI是Area of Interest的简称&#xff0c;顾名思义&#xff0c;指的是互联网电子地图中的兴趣面&#xff0c;主要用于在地图中表达区域状的地理实体&#xff0c;如一个居民小区、一所大学、一个产业园区、一个综合商场、一个医院、一个景区的矢量边界。对于AOI数据&#xff0c;…

题解 - 找子序列(2024.12上海月赛丙组T4)

题目描述 Dave 有一个长度为 n 的非负整数序列 a1-n, 和一个非负整数 m 。 他希望知道是否有一个 a 的非空子序列&#xff0c;使得子序列中所有元素的按位与(bitwise AND)结果为 m。 换言之&#xff0c;他想知道是否存在一个下标序列 i1-k(k ≥ 1),满足 1 ≤ i1 < i2 < …

R学习——因子

目录 1 定义因子&#xff08;factor函数&#xff09; 2因子的作用 一个数据集中的 只需要考虑可以用哪个数据来进行分类就可以了&#xff0c;可以用来分类就可以作为因子。 Cy1这个因子对应的水平level是4 6 8&#xff1a; 1 定义因子&#xff08;factor函数&#xff09; 要…

Zemax 中的 LED 阵列模型

LED 阵列的光学特性 LED 阵列由多个发光二极管 &#xff08;LED&#xff09; 组成&#xff0c;这些二极管以特定模式或配置排列&#xff0c;以实现均匀照明、更高强度或特定照明特性。这些阵列广泛用于显示器、照明系统、光通信和传感等应用。 LED 阵列的光学特性对于了解它如…

如何解决samba服务器共享文件夹不能粘贴文件

sudo vim /etc/samba/smb.conf在samba的配置文件中增加一个选项 writable yes重启Samba服务以使更改生效&#xff1a; sudo service smbd restart

数据分析特征标准化方法及其Python实现

数据分析特征标准化方法及其Python实现 1、概述 在数据分析中,对特征进行标准化主要是: 1、消除量纲影响 不同特征可能具有不同的量纲和数量级。 例如,一个特征可能是以米为单位的长度,而另一个特征可能是以秒为单位的时间。直接使用这些具有不同量纲的原始数据进行分析…

python之使用SFTP将Windows文件上传到Linux

环境 Python-3.8 Windows 64位安装必要的库 首先&#xff0c;确保已经安装了以下库&#xff1a; #有网安装方式&#xff1a; pip install paramiko #离线安装方式&#xff1a; pip install bcrypt-3.1.7-cp38-cp38-win_amd64.whl pip install cryptography-2.9-cp38-cp38-wi…

【C++游记】string的使用和模拟实现

枫の个人主页 你不能改变过去&#xff0c;但你可以改变未来 算法/C/数据结构/C Hello&#xff0c;这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕&#xff0c;我们继续来学习C的内容呀。C是接近底层有比较经典的语言&#xff0c;因此学习起来注定枯燥无味&#xf…

切换至低特权级

x86权限简介 x86芯片支持四种特权级&#xff1a;第0级权限最高&#xff0c;用于运行操作系统&#xff1a;第3级权限最低&#xff0c;用于运行应用程序&#xff1b;其它两级用于运行操作系统服务&#xff08;可选&#xff09;。 2&#xff0c;3等级用的少 权限检查时&#xff0…

游戏如何应对模拟器作弊

模拟器是指能在PC端模拟出安卓手机系统的软件&#xff0c;市面上比较常见的安卓模拟器有&#xff1a;雷电模拟器、MuMu模拟器、夜神模拟器等。 市面上常见的模拟器 模拟器既可以节省手机内存空间&#xff0c;避免长时间玩游戏手机发烫发热的尴尬&#xff0c;也可以用键盘鼠标对…

Ubuntu环境下搭建区块链FISCO BCOS节点和WeBASE

说明: 1.搭建的是webase-deploy并不是webase-front 2.根据本文档由于ubuntu版本的不同,可能会造成一些小的问题发生,自行解决 如:java环境变量;数据库权限、密码等。 (一)搭链 参考文档:WeBASE管理平台 — FISCO BCOS 2.0 v2.11.0 文档 1.安装依赖: sudo apt i…