Bailian2888 字符串中的数字【字符串】

字符串中的数字


总时间限制:  
1000ms  
内存限制:  
65536kB
描述
输入一个字符串,长度不超过20,字符串中包含数字和非数字字符,将其中是数字的字符提取出来,对它们进行从小到大排序,非数字字符则忽略不计。
输入
若干行字符串
输出
每一个字符串中所有数字的升序排序。每个数字占四个字符位置。使用cout<< setw(4)<< num;
处理完一行字符串换行一次。使用cout<< endl;
样例输入
31W 7Q9 2D2
4d t51 X9P
样例输出
   1   2   2   3   7   9
   1   4   5   9
提示
1.由于有多组测试数据,要求使用while循环读取输入。如下:
while(cin.getline(str,21))
{
//你的代码
}
2.setw(4)函数需要#include < iomanip >

问题链接Bailian2888 字符串中的数字

问题分析:(略)

程序说明:排序和输出格式是关键。

题记:按照提示来不吃亏。

 

AC的C++语言程序如下

/* Bailian2888 字符串中的数字 */

#include <iostream>
#include <algorithm>
#include <ctype.h>
#include <iomanip>

using namespace std;

const int MAXLEN = 20;

int main()
{
    char s[MAXLEN + 1];
    int i, j;

    while(cin.getline(s, MAXLEN + 1)) {
        i = j = 0;
        while(s[i]) {
            if(isdigit(s[i]))
                s[j++] = s[i];
            i++;
        }
        s[j] = '\0';

        sort(s, s+j);

        i = 0;
        while(s[i]) {
            cout << setw(4) << s[i];
            i++;
        }
        cout << endl;
    }

    return 0;
}






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
程序设计训练基础题库 1. 随机产生一些1—100之间的整数,直到产生的数为50为止。 2. 计算1—1000之间能同时被3和5整除的整数的和。 尝试使用多种方法/更快的求解这类题型 3. 打印下列图形: 1 121 12321 121 1 4. 一百匹马驮一百块瓦,一匹大马可以驮3块,一匹母马可驮2块,小马2匹可驮1块。试编程求需要各种马多少匹? 5. 有三种纪念邮票,第一种每套一张售价2元,第二种每套一张售价4元,第三种每套9张售价2元。现用100元买了100张邮票,问这三种邮票各买几张? 6. 赵、钱、孙、李、周五人围着一张圆桌吃饭。饭后,周回忆说:“吃饭时,赵坐在钱旁边,钱的左边是孙或李”;李回忆说:“钱坐在孙左边,我挨着孙坐”。结果他们一句也没有说对。请问,他们在怎样坐的? 7. 找数。一个三位数,各数字互不相同十位数字比个百位数字之和还要大,且十位百位数字之和不是质数。编程找出所有符合条件的三位数。 注:1. 不能手算后直接打印结果。 2. “质数”即“素数”,是指除1和自身外,再没有其它因数的大于1的自然数。 8. 选人。一个小组共五人,分别为A、B、C、D、E。现有一项任务,要他们的3个人去完成。已知:(1)A、C不能都去;(2)B、C不能都不去;(3)如果C去了,D、E就只能去一个,且必须去一个;(4)B、C、D不能都去;(5)如果B去了,D、E就不能都去。编程找出此项任务该由哪三人去完成的所有组合。 9. 输入一个字符串,内有数字和非数字字符。如A123X456Y7A,302ATB567BC,打印字符串所有连续(指不含非数字字符)的数字所组成的整数,并统计共有多少个整数。 10. A、B、C三人进入决赛,赛前A说:“B和C得第二,我得第一”;B说:“我进入前两名,丙得第三名”;C说:“A不是第二,B不是第一”。比赛产生了一、二、三名,比赛结果显示:获得第一的选手全说对了,获得第二的选手说对了一句,获得第三的选手全说错了。编程求出A、B、C三名选手的名次。 11. 甲、乙、丙、丁四人共有糖若干块,甲先拿出一些糖分给另外三人,使他们三人的糖数加倍;乙拿出一些糖分给另外三人,也使他们三人的糖数加倍;丙、丁也照此办理,此时甲、乙、丙、丁四人各有16块,编程求出四个人开始各有糖多少块。 12. 截数问题: 任意一个自然数,我们可以将其平均截取成三个自然数。例如自然数135768,可以截取成13,57,68三个自然数。如果某自然数不能平均截取(数不能被3整除),可将该自然数高补零后截取。现编程从键盘上输入一个自然数N(N的数<12),计算截取后第一个数加第三个数减第二个数的结果。 13. 从键盘输入一段英文,将其的英文单词分离出来:已知单词之间的分隔符包括空格、 问号、句号(小数点)和分号。 例如:输入:There are apples; oranges and peaches on the table. 输出:there are apples oranges and peaches on the table 14. 山乡希望小学收到一箱捐赠图书,邮件上署名是“兴华学高二班”,山乡希望小学校 长送来了感谢信,可是兴华学高二年级有四个班,校长找来了四个班的班长,问他们是哪 个班做的这件好事。一班的班长说:“是四班做的。”二班的班长说:“是三班做的好事。”三 班的班长说:“不是我们班。” 四班的班长说:“三班的班长说的不对。” 四个班的班长都说不是自己班做的,这就难坏了校长,后来得知四个班的班长有两个 说得是真话,有两个没有说真话,请你利用计算机的逻辑判断编一个程序,找出究竟是哪个 班做了这件好事。不能手算后直接打印结果。 15. A,B,C,D,E五个人合伙夜间捕鱼,凌晨时都疲惫不堪,各自在河边的树丛找地 方睡着了,日上三竿,E第一个醒来,他将鱼数了数,平分成五分,把多余的一条扔进河, 拿走一份回家去了,D第二个醒来,他并不知道有人已经走了,照样将鱼平分成五分,又扔掉多余的一条,拿走自己的一份,接着C,B,A依次醒来,也都按同样的办法分鱼(平分成 五份,扔掉多余的一条,拿走自己的一份),问五人至少合伙捕到多少条鱼。 也许你能用数学办法推出鱼的条数,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值