1174:长整数排序(指针专题)

题目描述

长整数排序。输入n 然后输入n个位数不超过100位的大整数,输入的整数可能含有前导0。将这n个长整数排序后输出,输出不含前导0。
int greater(char *s1, char *s2)
{
若s1指向的整数大于s2指向的整数,返回一个正整数;
若s1指向的整数小于s2指向的整数,返回负整数;
若s1指向的整数等于s2指向的整数,返回0;
}


输入

输入第一行是一个正整数n(n<=10),接下来n行是n个大整数,均非负。


输出

输出n行,为n个升序排序后的大整数。


样例输入 Copy

3
012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
54213456565
113456789456231545674632132156465132123156456423132156465461321654878976464654132132156455

样例输出 Copy

54213456565
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
113456789456231545674632132156465132123156456423132156465461321654878976464654132132156455

程序代码

#include<stdio.h>
#include<string.h>
int greater(char *s1, char *s2){int len1=strlen(s1);int len2=strlen(s2);int count1=0,count2=0;int flag1=0,flag2=0;if(s1[0]=='0'){//统计s1的前缀有多少0for(int i=0;i<len1;i++){if(s1[i]=='0'){count1++;}else{flag1=i;break;}}}if(s2[0]=='0'){//统计s2的前缀有多少0for(int i=0;i<len2;i++){if(s2[i]=='0'){count2++;}else{flag2=i;break;}}}len1=len1-count1;len2=len2-count2;if(len1>len2) return 1;else if(len1<len2) return -1;else{if ((s1[flag1]-'0')>(s2[flag2]-'0')) return 1;else if ((s1[flag1]-'0')<(s2[flag2]-'0')) return -1;else return 0;}
}
int main()
{int n;scanf("%d",&n);//输入nchar a[n][101];//定义一个二维字符数组for(int i=0;i<n;i++)//将这些长整数分别存入数组中{scanf("%s",a[i]);}for(int i=0;i<n-1;i++){char s1[101];strcpy(s1,a[i]);//定义一个字符数组s1,将待比较的长整数复制给s1for(int j=i+1;j<n;j++){char s2[101];strcpy(s2,a[j]);//定义一个字符数组s2,将待比较的长整数复制给s2if(greater(s1,s2)==1){//如果s1的串小于s2的串,则进行交换char ch[101];strcpy(ch,a[i]);strcpy(a[i],a[j]);strcpy(a[j],ch);}}}for(int i=0;i<n;i++)//输出排序后的长整数{int x=strlen(a[i]);int flag=0,count=0;if(a[i][0]=='0')//去前缀0操作{for(int j=0;j<x;j++){if(a[i][j]=='0')count++;else{flag=j;break;}}}if(count==x) printf("0\n");else{for(int k=flag;k<x;k++){printf("%c",a[i][k]);}printf("\n");}}return 0;
}

运行结果

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

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

相关文章

看门狗定时器

1. 看门狗 看门狗: 用于设备在 程序异常(死机) 时 可以自动重启设备 实现原理: 通过定时器 进行定时 , 在定时器时间结束前 进行 "喂狗" 重置定时器时间 若时间到,还没有"喂狗",系统重启 本质就是一个定时器, 如何定时? 定时器 本质是对 晶振时钟进行 计…

Leetcode—144. 二叉树的前序遍历【简单】

2023每日刷题&#xff08;九十六&#xff09; Leetcode—144. 二叉树的前序遍历 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr…

物业app开发成功案例:如何满足用户需求

在当今数字化时代&#xff0c;物业管理已经不再是一个简单的领域。随着智能手机的普及和移动互联技术的发展&#xff0c;许多物业管理公司纷纷投入物业App开发&#xff0c;以提升管理效率、改善用户体验。本文将介绍一个成功的案例&#xff0c;探讨如何满足用户需求。 物业App…

JavaScript继承与原型链

继承和原型链是什么&#xff1f; 1.1 在继承中&#xff0c;子类继承父类的特征和行为&#xff0c;使得子类对象具有父类的实例域和方法。这意味着子类可以使用父类的方法和属性&#xff0c;使用继承的目的是为了更好设置实例的公共属性和方法&#xff0c;如下例子&#xff1a; …

vue —— h函数的学习与使用

文章目录 一、h函数是什么&#xff1f;二、h函数格式说明及使用示例1&#xff1a;简单创建一个VNode&#xff08;vue3&#xff09;示例2&#xff1a;vue2中h函数用法示例3&#xff1a;vue3中h函数的用法vue2和vue3中h函数的区别&#xff1f; 三、h函数实现原理四、h函数常用场景…

深度学习 pytorch的使用(张量2)

深度学习 pytorch的使用&#xff08;张量1&#xff09; 五、张量索引操作 简单行、列索引、列表索引、范围索引、布尔索引、多维索引 import torch # 数据 data torch.randint(0,10,[4,5]) print(data) tensor([[7, 6, 9, 4, 6], [1, 9, 0, 9, 2], [5, 7, 1, …

800G光传输网络中的相干调制与PAM4技术

在800G光传输网络架构中&#xff0c;相干调制技术和PAM4&#xff08;四电平脉冲幅度调制&#xff09;技术各具优势&#xff0c;分别针对不同应用场景提供高效解决方案。 相干调制是高级光通信的核心技术之一&#xff0c;它通过精密操控光载波的频率、相位和振幅来编码信息&…

HMI-Board以太网数据监视器(二)MQTT和LVGL

E ∫ d E ∫ k d q r 2 k L ∫ d q r 2 E \int dE \int \frac{kdq}{r^2} \frac{k}{L} \int \frac{dq}{r^2} E∫dE∫r2kdq​Lk​∫r2dq​ E Q 2 π ϵ L 2 E \frac{Q}{2\pi\epsilon L^2} E2πϵL2Q​ Γ ( n ) ( n − 1 ) ! ∀ n ∈ N \Gamma(n) (n-1)!\quad\forall n…

JavaScript 学习笔记(WEB APIs Day4)

「写在前面」 本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。推荐先按顺序阅读往期内容&#xff1a; 1. JavaScript 学习笔记&#xff08;Day1&#xff09; 2. JavaSc…

C#使用RabbitMQ-1_Docker部署并在c#中实现简单模式消息代理

介绍 RabbitMQ是一个开源的消息队列系统&#xff0c;实现了高级消息队列协议&#xff08;AMQP&#xff09;。 &#x1f340;RabbitMQ起源于金融系统&#xff0c;现在广泛应用于各种分布式系统中。它的主要功能是在应用程序之间提供异步消息传递&#xff0c;实现系统间的解耦和…

SpringBoot框架:入门指南(二)

一. RESTful API开发 1. 创建RESTful控制器 在企业级Java开发中&#xff0c;RESTful API扮演着至关重要的角色&#xff0c;为系统提供了灵活、可扩展的接口。下面将详细介绍如何创建高质量的RESTful控制器&#xff0c;充分利用Spring Boot注解。 1.1 RESTful设计原则 RESTf…

Ubuntu20.0.4下设置frpc开机自启动

目录 一、下载frp 二、解压 三、服务端部署 1.配置 2.运行 三、客户端部署 1、配置 2、后台运行 四、开机启动 1、拷贝frpc.service 2、修改配置 3、启用服务 五、ubuntu20.04使用 rc-local.service设置开机启动 1、建立开机服务添加 [Install] 段 2、授权rc-local.service 3、…

Anaconda常用命令、操作、镜像源

Anaconda常用操作 命令例子作用conda create -n 环境名 需要的库conda create -n pythonenv python3.8创建环境conda info --envsconda info --envs查看全部环境activate 环境名activate pythonenv激活环境conda deactivateconda deactivate退出环境conda remove -n 环境名 --a…

pytorch学习笔记(十一)

优化器学习 把搭建好的模型拿来训练&#xff0c;得到最优的参数。 import torch.optim import torchvision from torch import nn from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear from torch.utils.data import DataLoaderdataset torchvision.datas…

uniapp安卓android离线打包本地打包整理

离线打包准备 下载Android studio 1.准备资源hbuilder 2.准备离线SDK 最新android平台SDK下载最新android平台SDK下载 3.离线打包key申请 4.直接导入HBuilder-Integrate-AS工程,直接运行simpleDemo项目即可 5.安装java 1.8 jdk-8u151-windows-x64 6.遇到这个报错报错Caus…

在游戏里开公司!基于ERNIE SDK的多智能体游戏应用

在虚拟世界有一座神奇的办公室&#xff0c;当你输入你的创业方向&#xff0c;办公室的智慧打工人们将团结合作&#xff0c;为你的项目勤劳奔走&#xff0c;并在过程中&#xff0c;把日报周报都写好&#xff0c;让你随时掌握项目进度和最终成果&#xff01;该项目基于ERNIE SDK开…

工厂方法模式-C#实现

该实例基于WPF实现&#xff0c;直接上代码&#xff0c;下面为三层架构的代码。 一 Model using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace 设计模式练习.Model.工厂方法模式 {internal class…

MSG3D论文解读

论文在stgcn与sta-lstm基础上做的。下面讲一下里面的方法&#xff1a; 1.准备工作 符号。这里是对符号进行解释。 一个人体骨骼图被记为G(v,E) 图卷积&#xff1a; 图卷积定义 考虑一种常用于处理图像的标准卷积神经网络 (CNN)。输入是像素网格。每个像素都有一个数据值向…

趣学贝叶斯统计:量化

概率理论不仅仅是一个数学概念&#xff0c;更是一种对随机性和不确定性的理解方式。通过量化我们对事件发生的信念&#xff0c;我们能够更准确地预测和解释各种现象。在本章中&#xff0c;我们将探讨事件概率与信念概率&#xff0c;为我们的理论和分析工具箱增添新的维度。 事…

Angular封装HttpClient文件下载

Angular HttpClient 文件下载 前言HttpRequest.tsdemo后端接口koa2示例功能优化实现下载进度监控 前言 使用Angular框架开发工作中&#xff0c;实现文件下载业务时&#xff0c;我们可以使用Angular自带的HttpClient。下面我们就封装一下HttpClient实现文件下载&#xff0c;当接…