这题寒假也没搞出来,但今天花了一小时终于搞定。

  题意是输入一串数字字符,把‘5’当作空格,然后把被分割开的数字进行排序输出。

  首先是字符串输入,按照高精度的处理方法,数值低位放到数组低位。(字符串型的S转到整形的A)

  然后,开始对A数组遍历,将第i位的数值乘以10的i次方,累加到B数组(整形)。遇到5则continue,当然还要对累加时的变量进行重置。

  上述的做法有两个点要特别注意到,如果A数组的最后一位不是5,而整个数组里5的数量不为0,则B数组的个数要加1,二是如果数组里5的数量为0,则B的个数也要加1。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <iostream>
 5 #include <algorithm>
 6 using namespace std;
 7
 8 int main()
 9 {
10     char s[1005];
11     int a[1050],b[300],i,j,slen,ilen,pos,top,dou,sum;
12     while(scanf("%s",s)!=EOF)
13     {
14         memset(b,0,sizeof(b));
15         slen = strlen(s);
16         sum = 0;
17         for(i=slen-1,j=0; i>=0; i--)
18         {
19             a[j] = s[i] - '0';
20             if(a[j] == 5)
21                 sum ++;
22             j++;
23         }
24         if(a[0] == 5)
25         {
26             i = 1;
27         }
28         else
29         {
30             i = 0;
31         }
32         for(top=0,dou=1; i<slen; i++)
33         {
34             if(a[i]==5 && a[i-1] == 5)
35                 continue;
36             if(a[i] == 5)
37             {
38                 pos = i;
39                 dou = 1;
40                 top++;
41                 continue;
42             }
43             else
44             {
45                 b[top] += a[i]*dou;
46                 dou*=10;
47             }
48         }
49         if(a[slen-1] != 5 && sum!=0)
50             top++;
51         if(sum == 0)
52             top++;
53         sort(b,b+top);
54         for(i=0; i<top-1; i++)
55             printf("%d ",b[i]);
56         printf("%d\n",b[top-1]);
57     }
58     return 0;
59 }

转载于:https://www.cnblogs.com/catdrivedragon/p/3551824.html

2-16 HDO1106相关推荐

  1. 实现手机来电铃声,通知铃声、警告铃声等音频定制化功能(三,多媒体扫描结果定制处理)

    本篇博文主要是对MediaScanner中endFile方法的处理流程上的重构,以实现需求中的资源区域化定制.处理思路为首先扫描定制分区中的资源,在扫描系统分区下默认资源时判断定制分区西下是否已经存在 ...

  2. sqlserver错误码

    错误 6,000 到 6,999 错误 严重性 是否记录事件 说明 6001 10 否 SHUTDOWN 正在等待 %d 个进程完成. 6004 10 否 用户没有执行此操作的权限. 6005 10 ...

  3. Go 1.16 的这个新变化需要适应下:go get 和 go install 的变化

    原文地址: Go 1.16 的这个新变化需要适应下:go get 和 go install 的变化 一直以来,go get 用于下载并安装 Go 包.命令等,而 go install 在 module ...

  4. Ubuntu 16.04 安装后修改屏幕分辨率(xrandr: Failed to get size of gamma for output default)

    ubuntu 16.04 安装后分辨率只有一个选项 1024x768,使用 xrandr 命令出现错误: xrandr: Failed to get size of gamma for output ...

  5. Ubuntu 16.04 安装 Docker - Dependency failed for Docker Application Container

    Docker 安装 由于 apt 官方库里的 Docker 版本可能比较旧,所以先卸载可能存在的旧版本: sudo apt-get remove docker docker-engine docker ...

  6. java 16进制与图片互转

    十六进制转成图片 /*** 十六进制转成图片* @author Administrator**/public static void saveToImgFile(String src,String o ...

  7. 【CV】吴恩达机器学习课程笔记第16章

    本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 16 推荐系统 16-1 问题规划 16-2 基于内容的推 ...

  8. python 16进制转10进制, 8进制转10进制, 2进制转10进制的方法

    python 16进制转10 进制, 8进制转10进制, 2进制转10进制 可以使用系统自带的 int 方法 具体如下: value = "0x1388" result = int ...

  9. java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode

    问题出现在在定义一些常量的时候 这个定义的数据不要超过16  ,这个问题就是定义超过了 16 , 用16进制的最好.

  10. Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib

    今天导入饺子库提示 sdk 不能低于16的错误提示,导致build 失败 处理方法: 我把15 改成了16即可编译通过 这个是之前写的,目前各大应用平台要求最低是26了,

最新文章

  1. java writeboolean_Java DataOutputStream writeBoolean()方法(带示例)
  2. Java 之 内部类
  3. QT5主界面“关闭窗口”按钮设置弹出提示询问信息
  4. 小鱼的航程(改进版)(洛谷-P1424)
  5. mongodb MapReduce
  6. springboot Cacheable(redis),解决key乱码问题
  7. 多个值合并成一个字段oracle排序,Oracle之多行记录变一行记录,行变列,并排序(wmsys.wm_concat)...
  8. JMS学习(三)JMS 消息结构之属性及消息体详解
  9. 《因果推理原理:基础与学习算法》第一章 因果模型和统计模型
  10. 爬取人民日报_抓取人民日报
  11. 游戏手柄(JoyStick)的延时处理
  12. 关于物联网你需要知道的一切
  13. 01_机器人坐标系的说明
  14. app启动页面的问题
  15. 网站移动端APP渗透测试安全检测方案
  16. 延迟10us程序C语言,C语言之延时
  17. bat操作php文件内容,定时运行某个php文件的bat文件
  18. prusai3打印机使用教程_prusa i3 3D打印机固件Marlin配置初学者篇
  19. runit 学习笔记
  20. Gstreamer播放教程2: Subtitle management (字幕管理)

热门文章

  1. TX Text Control文字处理教程
  2. Win32基础知识5 - Win32汇编语言006
  3. 完美的代价 c语言,蓝桥杯基础练习 完美的代价
  4. MMDetection库部署和训练
  5. MapReduce基础开发之二数据去重和排序
  6. 配置文件加载优先级和外部配置文件加载||IDEA外部配置文件无法加载
  7. spring中的JdbcTemplate——JdbcTemplate的最基本用法
  8. Java的知识点21——String类、StringBuffer和StringBuilder、不可变和可变字符序列使用陷阱
  9. JavaScript中判断为整数的多种方式
  10. C# 学习笔记(18)操作SQL Server 中