BeGa 贝格 2022-01-15 20:27 采纳率: 84.6%
浏览 61

对于输入的字符串(只包含字母和数字),将其中的连续数字拼接成整数,然后将这些整数按从大到小顺序输出。

对于输入的字符串(只包含字母和数字),将其中的连续数字拼接成整数,然后将这些整数按从大到小顺序输出。
例如字符串“abc123d5e7f22k9”中共有5个数字123,5,7,22,9,因此应输出123 22 9 7 5。

输入说明
输入为一个字符串,字符串长度不超过100,其中最长的连续数字不超过10个,字符串中至少包含1个数字。

  • 写回答

1条回答 默认 最新

  • _GX_ 2022-01-16 01:19
    关注
    #include <stdio.h>
    #include <ctype.h>
    
    #define N 100
    
    void swap(int *a, int *b)
    {
        int t = *a;
        *a = *b;
        *b = t;
    }
    
    void sort(int *a, int n)
    {
        for (int i = 0; i < n - 1; i++)
            for (int j = i + 1; j < n; j++)
                if (a[i] < a[j])
                    swap(&a[i], &a[j]);
    }
    
    int main()
    {
        char a[N];
        int b[N];
        int n = 0;
        scanf("%s", a);
        const char *p = a;
        while (*p)
        {
            if (isdigit(*p))
            {
                int num = 0;
                do
                {
                    num = num * 10 + *p - '0';
                    p++;
                } while (*p && isdigit(*p));
                b[n++] = num;
            }
            else
            {
                p++;
            }
        }
        sort(b, n);
        for (int i = 0; i < n; i++)
            printf("%d ", b[i]);
        printf("\n");
        return 0;
    }
    
    $ gcc -Wall main.c
    $ ./a.out
    abc123d5e7f22k9
    123 22 9 7 5
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月15日

悬赏问题

  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?