求解,不会呀,这个该怎样利用数求解,不会呀,这个该怎样利用数组进行转换呢组进行转换呢

img


求解,不会呀,这个该怎样利用数组进行转换呢
求解,不会呀,这个该怎样利用数组进行转换呢

供参考:

#include <stdio.h>
#define N 11
int sum(int n)
{
    int s = 0;
    while (n){
        s += n % 10;
        n /= 10;
    }
    return s;
}
int main()
{
    int n, i, j, t, a[N];
    scanf("%d", &n);
    for (i = 0;i < n; i++)
        scanf("%d", &a[i]);
    for (i = n - 1; i > 0; i--){
        for (j = 0; j < i; j++){
            if (sum(a[j]) < sum(a[j+1]))
                t = a[j],a[j] = a[j+1],a[j+1] = t;
        }
    }
    for (i = 0; i < n; i++)
        printf(i ? ",%d" : "%d", a[i]);

    return 0;
}

#include <stdio.h>

int digit_sum(int num) {
    int sum = 0;
    while (num > 0) {
        sum += num % 10;
        num /= 10;
    }
    return sum;
}

int main() {
    int n;
    scanf("%d", &n);
    int nums[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &nums[i]);
    }
    for (int i = 0; i < n - 1; i++) {
        for (int j = i + 1; j < n; j++) {
            int sum1 = digit_sum(nums[i]);
            int sum2 = digit_sum(nums[j]);
            if (sum1 < sum2) {
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        }
    }
    for (int i = 0; i < n; i++) {
        printf("%d", nums[i]);
        if (i < n - 1) {
            printf(",");
        }
    }
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

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