关于#c语言#的问题:对此整数中的五个数值进行从大到小的顺序排序

输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。要求:用函数调用

#include <stdio.h>
int getMaxFive(int n)
{
    int a[5], i, j, k = 0, t;
    while (n!=0){
        a[k] = n%10;
        n /= 10;
        k++;
    }
    if (k != 5)return -1;
    for (i = 0; i < k; ++i){
        for (j = 0; j < k-i-1; ++j){
            if (a[j] < a[j+1]){
                t = a[j], a[j] = a[j+1], a[j+1] = t;
            }
        }
    }
    t = 0;
    for (i = 0; i < k; ++i){
        t = t*10 + a[i];
    }
    return t;
}
int main()
{
    int e;
    scanf("%d",&e);
    e=getMaxFive(e);
    printf ("%d\n", e);
    return 0;
}

我把注释也写上吧,帮助你理解:

using System;

namespace FiveDigitNumberSort
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个五位整数:");
            int number = int.Parse(Console.ReadLine());

            // 调用Sort方法对数字进行排序
            int sortedNumber = Sort(number);

            // 输出排序后的数字
            Console.WriteLine("排序后的数字为:" + sortedNumber);
        }

        static int Sort(int number)
        {
            // 定义一个数组,用来存储数字的每一位
            int[] digits = new int[5];

            // 遍历每一位,从高位到低位
            for (int i = 4; i >= 0; i--)
            {
                digits[i] = number % 10;
                number /= 10;
            }

            // 对数组进行排序,从大到小
            Array.Sort(digits);
            Array.Reverse(digits);

            // 将排序后的数组转换为一个整数并返回
            int sortedNumber = 0;
            for (int i = 0; i < 5; i++)
            {
                sortedNumber = sortedNumber * 10 + digits[i];
            }
            return sortedNumber;
        }
    }
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^