AC日记 - - - 23——各位数字之和排序

Posted 一本故事i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AC日记 - - - 23——各位数字之和排序相关的知识,希望对你有一定的参考价值。

Problem Description

给定n个正整数,根据各位数字之和从小到大进行排序。

Input

输入数据有多组,每组数据占一行,每行的第一个数正整数n,表示整数个数,后面接n个正整数。当n为0时,不作任何处理,输入结束。n<=10

Output

输出每组排序的结果。

Example Input

2 1 2
3 121 10 111
0

Example Output

1 2
10 111 121

Hint

#include <stdio.h>
#include <stdlib.h>
int f(int n)//写一个计算各位数字之和的数。
{
    int sum=0;
    while(n!=0)
    {
        sum+=n%10;
        n=n/10;
    }
    return sum;
}
int main()
{
    int n;
    int *num, i, j, temp;
    while(scanf("%d", &n)!=EOF)
    {
        if(n==0)
        return 0;
        num=malloc(sizeof(int)*n);
        for(i=0; i<n; i++)
        scanf("%d", &num[i]);

        for(i=1; i<n; i++)
        for(j=0; j<n-i; j++)
        {
            if(f(num[j])>f(num[j+1]))
            {
                temp=num[j+1];
                num[j+1]=num[j];
                num[j]=temp;
            }
        }

        for(i=0; i<n; i++)
        {
            if(i==0)
            printf("%d", num[i]);
            else
            printf(" %d", num[i]);
        }
            printf("\n");
    }
}

  

以上是关于AC日记 - - - 23——各位数字之和排序的主要内容,如果未能解决你的问题,请参考以下文章

Java练习 SDUT-1188_各位数字之和排序

码蹄集 - MT2201 · 各位之和

AC日记 - - - 18——区间之和

AC日记——阶乘之和 洛谷 P1009(高精度)

AC日记——神奇的幻方 洛谷 P2615(大模拟)

AC日记——双栈排序 洛谷 P1155