老嘟 2022-07-27 20:28 采纳率: 0%
浏览 22

c语言 直接调用自定义函数

问题 J: 高精度减法之排序减法

时间限制: 1.000 Sec 内存限制: 128 MB
提交: 151 解决: 62
[命题人:][下载数据: ?]
题目描述
有两个纯粹由数字组成的字符串s1,s2,将s1串中的数字进行从大到小排列,s2串中的数字从小到大排列,求排列后s1-s2的值(s1转换为数字时大于0)
输入
输入2行数字字符串数据,分别代表s1,s2;
如:
213
21
(排列后 s1的值是321 ; s2的值是12 ;)
输出
s1-s2的值
如:
309
(根据上面输入的示例,计算结果为321-12=309)
样例
输入 复制
213
21
输出 复制
309

  • 写回答

1条回答 默认 最新

  • 滴水不穿石 2022-07-27 22:04
    关注

    仅供参考!谢谢!

    img

    
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define SWAP(x,y) char tmp;tmp=x;x=y;y=tmp
    
    // 字符串递增排序
    char *sort_asc(char *s)
    {
        if (!s)
            return NULL;
        char *p = s;
        int i = 0, j;
        size_t len = strlen(s);
        for (; i < len - 1; i++)
        {
            for (j = i + 1; j < len; j++)
            {
                if (*(p + i) > *(p + j))
                {
                    SWAP(*(p + i), *(p + j));
                }
            }
    
        }
        *(p + j) = '\0';
        return p;
    }
    
    // 字符串递减排序
    char *sort_inde(char *s)
    {
        if (!s)
            return NULL;
        char *p = s;
        int i = 0, j;
        size_t len = strlen(s);
        for (; i < len - 1; i++)
        {
            for (j = i + 1 ; j < len; j++)
            {
                if (*(p + i) < *(p + j))
                {
                    SWAP(*(p + i), *(p + j));
                }
            }
    
        }
        *(p + j) = '\0';
        return p;
    }
    
    int main()
    {
        char s1[1000], s2[1000];
        // 
        long res;
        puts("输入字符串s1:");
        scanf("%999s", s1);
        puts("输入字符串s2:");
        scanf("%999s", s2);
        res = atol(sort_inde(s1)) - atol(sort_asc(s2));
        printf("%s-%s=%ld\n", s1, s2, res);
    
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月27日

悬赏问题

  • ¥15 windows2019+nginx+php耗时久
  • ¥15 labelme打不开怎么办
  • ¥35 按照图片上的两个任务要求,用keil5写出运行代码,并在proteus上仿真成功,🙏
  • ¥15 免费的电脑视频剪辑类软件如何盈利
  • ¥30 MPI读入tif文件并将文件路径分配给各进程时遇到问题
  • ¥15 pycharm中导入模块出错
  • ¥20 Ros2 moveit2 Windows环境配置,有偿,价格可商议。
  • ¥15 有关“完美的代价”问题的代码漏洞
  • ¥15 请帮我看一下这个简易化学配平器的逻辑有什么问题吗?
  • ¥15 暴力法无法解出,可能要使用dp和数学知识