输入一个数3256,将他从小到大输出,就是2356
这是知乎上面的一个题目,挺有意思,面试的时候应该是作为基础题,很多人不屑于看这样的题目,但是到自己些的时候,就会有很多问题。
题目要求
输入一个数3256,将他从小到大输出,就是2356
分析
输入的是字符,我们这里就只分析了int类型不考虑其他字符了。
代码如下:
#include <stdio.h>
#include <string.h>/*
二进制 |十进制 |十六进制 | 字符
0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 50 32 2
0011 0011 51 33 3
0011 0100 52 34 4
0011 0101 53 35 5
0011 0110 54 36 6
0011 0111 55 37 7
0011 1000 56 38 8
0011 1001 57 39 9
*/ void sort(char *nums,unsigned char *output,size_t len);
int main(int argc, char const *argv[])
{char nums[100];unsigned char output[10] = {0};/*0~9*/int i = 0;gets(nums);sort(nums,output,strlen(nums));//printf("\n");for(i = 0;i<10;i++){while(output[i] --) printf("%c",i+0x30);}getchar();return 0;
}void sort(char *nums,unsigned char *output,size_t len)
{int i = 0;for(i = 0;i<len;i++){output[nums[i] - 0x30]++;//printf("%d,",nums[i] - 0x30);}
}
代码很简单,把对应的字符ascii码转成 0~9的整型,然后使用计数排序,也就是每个位置判断一下,如果这个位置是1,就把这个位置的数值加1。
输出
推荐阅读:
专辑|Linux文章汇总
专辑|程序人生
专辑|C语言
我的知识小密圈
输入一个数3256,将他从小到大输出,就是2356相关推荐
- 本题要求将输入的任意3个整数从小到大输出。
本题要求将输入的任意3个整数从小到大输出. 输入格式: 输入在一行中给出3个整数,其间以空格分隔. 输出格式: 在一行中将3个整数从小到大输出,其间以"->"相连. 输入样例 ...
- (C++)输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。
#include<cstdio> //输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.要求用3个函数实现,分别为输入10个数.进行处理.输出10个数.要求使用指针 ...
- ACMNO.37 C语言-数字交换 输入10个整数,将其中最小的数与第一个数对换,然后把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
题目描述 输入10个整数,将其中最小的数与第一个数对换,然后把最大的数与最后一个数对换. 写三个函数: ①输入10个数:②进行处理:③输出10个数. 输入 10个整数 输出 整理后的十个数,每个数后跟 ...
- java switch语句练习 从键盘输入2个数和一个运算符(+,-,*,/),输出运算结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- java5个数从大到小进行排序_输入5个数用冒泡排序进行从小到大排列
package liu0913; import java.util.Scanner; public class Maopao { public static void main(String[] ar ...
- 任意输入三个数字,按从小到大输出(Python)
x = int(input("第一个数: ")) y = int(input("第二个数: ")) z = int(input("第三个数: &quo ...
- c语言输出最大的数ns流程图_③依次输入10个数,要求输出其中最大的数用传统流程图表示...
编写VB程序.输入20个数,放在数组中,输出其总和,平均数,以及大于平均数的那些数 简单写一下代码流程dima(20)fori=0to19a(i)=inputbox("输入第"+s ...
- c语言按大小排列输出三个数,输入3个数a,b,c,按大小顺序输出
题目:输入3个数a,b,c,按大小顺序输出 package com.li.FiftyAlgorthm; import java.util.Scanner; /** * 题目:输入3个数a,b,c,按大 ...
- c语言如何将数组里的数排序输出,c程序输入10个数到一维数组中,按升序排序后输出。...
匿名用户 1级 2010-01-16 回答 //演示输入N个数,并按大小顺序输出 #include #define N 10 float increase(float *array,unsigned ...
最新文章
- C语言下标要求数组或指针,c语言改错 error C2109: 下标要求数组或指针类型怎么改?...
- 中国机器人产业发展报告(2019)正式发布!
- legend2---开发常用语句
- linux目录怎么自动生成,情景linux--如何快速生成大文件?
- 实战mongodb3.06 Relica Sets+sharding集群
- JavaScript那些事儿(1):对比JavaScript和jQuery的Dom操作
- 【计算机系统结构】第一周 课上笔记
- CentOS 7.2安装Jenkins自动构建Git项目
- 信用卡的3种分期模式全面比较
- golang 修改nginx配置文件_「系统架构」Nginx调优,不可错过的几点
- thymealf如何实现传单个变量给html_纯前端使用JavaScript发送电子邮件,5个步骤图文教程...
- 1.9 使用PuTTY远程连接Linux 1.10 使用xshell连接Linux 1.11 PuTTY密钥认证 1.12 xshell密钥认证...
- pointer-events:none
- 2原理图_pcb板设计电路原理图步骤和方法
- 循环增加li id_循环老化对于锂离子电池中锂和电解液分布的影响
- jquery项目中一些比较常用的简单方法
- 基于visual Studio2013解决C语言竞赛题之0203格式化输出
- 顺序表查找及其优化(Java)
- 使用代码辅助生成工具CodeSmith -- 生成NHibernate的映射文件
- X99-DELUXE II 无线网卡linux驱动RHEL8.5-centos8.5