组成最大数
 

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

输入: 自然数 n

输出: 各位数字组成的最大数

  测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1 以文本方式显示

  1. 1593↵
以文本方式显示

  1. 9531↵
1秒 64M 0

【分析】

很显然,这是个排序的题。先用冒泡排序实现,很简单代码就不写了。

【代码】

冒泡排序的代码在我的Blog:http://blog.csdn.net/debug__boy/article/details/8170580中,代码的58-70行。

【多说一点】

这里提供一稍稍带点技巧的实现方法,不需要排序,利用数字0~9一次递增(排好序)的规律,直接得出结果。

代码如下:

  1. #include "stdio.h"
  2. int main(int argc, char **argv)
  3. {
  4. char ch;
  5. int arr[10] = {0};      //存储各个数字出现的次数,初始化为0
  6. //统计各个数字出现的次数
  7. while(1)
  8. {
  9. ch = getchar();
  10. if (ch == '\n')
  11. {
  12. break;
  13. }
  14. arr[ch - '0']++;
  15. }
  16. int i, j;
  17. //输出各个数字出现的次数
  18. for (i = 9; i >= 0; i--)
  19. {
  20. printf("数字%d 出现%d次.\n", i, arr[i]);
  21. }
  22. //输出这些数组成的最大的数
  23. printf("\n组成的最大的数:\n");
  24. for (i = 9; i >= 0; i--)
  25. {
  26. for(j = arr[i]; j > 0; j--)
  27. printf("%d", i);
  28. }
  29. printf("\n");
  30. //输出这些数组成的最小的数,注意:0不输出
  31. printf("\n组成的最小的数:\n");
  32. for (i = 1; i <= 9; i++)
  33. {
  34. for(j = arr[i]; j > 0; j--)
  35. printf("%d", i);
  36. }
  37. printf("\n");
  38. return 0;
  39. }

【运行截图】

011--c数组--排序--组成最大数的更多相关文章

  1. FCC JS基础算法题(5):Return Largest Numbers in Arrays(找出多个数组中的最大数)

    题目描述: 找出多个数组中的最大数右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组.提示:你可以用for循环来迭代数组,并通过arr[i]的方式来访问数组 ...

  2. jquery json数组(排序)

    ar nums = ['12','2','5','36','4']; $('#show7').html(nums.join('<br/>')); //定义了sort的比较函数 nums = ...

  3. jquery数组(排序)

    sort(); html: <h3>字符串数组排序前</h3> <div id="show1"></div> <h3>排 ...

  4. 【BZOJ3262】陌上花开 (CDQ分治+树状数组+排序)

    Time Limit: 3000 ms   Memory Limit: 256 MB Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),用三个整数表示. 现要对每 ...

  5. 并查集&线段树&树状数组&排序二叉树

    超级无敌巨牛逼并查集(带权并查集)https://vjudge.net/problem/UVALive-4487 带删点的加权并查集 https://vjudge.net/problem/UVA-11 ...

  6. 工作总结 string数组 排序 string数组 比较

    用到   工具类 Array 创建.处理.搜索数组并对数组进行排序 Enumerable  提供一组用于查询实现 System.Collections.Generic.IEnumerable<T ...

  7. Java自学-数组 排序

    Java 数组选择法,冒泡法排序 步骤 1 : 选择法排序 选择法排序的思路: 把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来 比较完后,第一位就是最小的 然后再从第二位和剩余的其 ...

  8. [USACO17FEB]Why Did the Cow Cross the Road III G (树状数组,排序)

    题目链接 Solution 二维偏序问题. 现将所有点按照左端点排序,如此以来从左至右便满足了 \(a_i<a_j\) . 接下来对于任意一个点 \(j\) ,其之前的所有节点都满足 \(a_i ...

  9. golang数组 排序和查找

    package main import "fmt" func BubbleSort(arr *[5]int){ fmt.Println("排序前arr=",(* ...

随机推荐

  1. android自己定义之 5.0 风格progressBar

    近期做项目,用到了ProgressBar .就想到了要使用Android5.0 的效果,就随手实现了一下. 效果图: 大概的思路: 1. 圆圈通过Canvas去绘制 2.圆圈的动画通过Animator ...

  2. vmware里面的linux怎么和windows相互传文件

    我们常常遇到这样的问题.高版本号的vmware遇到低版本号的linux.使用起来就比較抠脚,比方低版本号的linux安装在高版本号的vmware里. 1.不能全屏显示虚拟机 2.每次切换出来.总要按一 ...

  3. 线段树专题 POJ3468 A Simple Problem with Integers

    题意:n个点.m个操作.两种操作类型.C X Y K 表示区间[x,y]上每一个点值加k.Q X Y 求区间[x,y]的和 分析:线段树区间求和,裸模板 注意:结果会超int,要用long long ...

  4. LeetCode 443. String Compression (压缩字符串)

    题目标签:String 这一题需要3个pointers: anchor:标记下一个需要存入的char read:找到下一个不同的char write:标记需要存入的位置 让 read指针 去找到下一个 ...

  5. nyoj27水池数目 (DFS)

    题目27 题目信息 执行结果 本题排行 pid=27" style="text-decoration:none; color:rgb(55,119,188)">讨论 ...

  6. iOS 手机没有安装支付宝的情况下,不调支付宝网页的解决的方法

    NSArray *array = [[UIApplication sharedApplication] windows]; UIWindow* win=[array objectAtIndex:0]; ...

  7. Eclipse下单个文件中文乱码问题

    有时候用eclipse打开单个文件,会出现中文乱码问题. 这时可以点菜单栏 Edit -> Set Encoding,Other:UTF-8,通常可以解决问题.

  8. 数据库html 数据的分句

    Python 中文分句 - CSDN博客 https://blog.csdn.net/laoyaotask/article/details/9260263 # 设置分句的标志符号:可以根据实际需要进行 ...

  9. 我的Android进阶之旅------&gt;Android关于ImageSpan和SpannableString的初步了解

    近期要实现一个类似QQ聊天输入框.在输入框中能够同一时候输入文字和表情图像的功能.例如以下图所看到的的效果: 为了实现这个效果.先去了解了一下ImageSpan和SpannableString的使用方 ...

  10. linux设备驱动模型之Kobject、kobj_type、kset【转】

    本文转载自:http://blog.csdn.net/fengyuwuzu0519/article/details/74838165 版权声明:本文为博主原创文章,转载请注明http://blog.c ...