Arehen 发表于 2023-11-9 23:53:53

c语言

任意输入一个正整数,输出其各位数字重排后最大的整数

isdkz 发表于 2023-11-9 23:54:21

你可以按照以下步骤来解决这个问题:

1. 首先,将输入的正整数转换为字符串,以便可以对其进行排序。
2. 使用标准库函数strlen获取字符串的长度。
3. 使用标准库函数qsort对字符串进行排序。在排序函数中,你需要自定义一个比较函数,使得排序按照递减的顺序进行。
4. 最后,将排序后的字符串转换回整数,并输出结果。

以下是一个示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int compare(const void* a, const void* b) {
    return (*(char*)b - *(char*)a);
}

int main() {
    int num;
    printf("请输入一个正整数:");
    scanf("%d", &num);

    // 将正整数转换为字符串
    char str;
    sprintf(str, "%d", num);

    // 对字符串进行排序
    size_t len = strlen(str);
    qsort(str, len, sizeof(char), compare);

    // 将排序后的字符串转换为整数
    int result = atoi(str);

    printf("重排后的最大整数为:%d\n", result);

    return 0;
}


希望这可以帮助到你!
页: [1]
查看完整版本: c语言