C语言实验——各位数字之和排序 (sdut oj)

来源:互联网 发布:mac怎么上传淘宝助理 编辑:程序博客网 时间:2024/05/21 19:45


C语言实验——各位数字之和排序

Time Limit: 1000MS Memory Limit: 65536KB



Problem Description

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


Input

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


Output

输出每组排序的结果。


Example Input

2 1 23 121 10 1110


Example Output

1 210 111 121

Hint


Author








参考代码


#include<stdio.h>int main(){    int sum[10];    int n;    int i,j;    int temp;    int a[10];    while(~scanf("%d",&n)&&n)    {        for(i = 0; i < n; i++)        {            sum[i] = 0;        }        for(i = 0; i < n; i++)        {            scanf("%d",&a[i]);            temp = a[i];            for(j = 0; ; j++)            {                sum[i] += temp%10;                temp = temp / 10;                if(temp == 0)                    break;            }        }        for(i = 0; i < n - 1; i++)        {             for(j = i + 1; j < n; j++)            {                if(sum[i] > sum[j])                {                    temp = sum[i];                    sum[i] = sum[j];                    sum[j] = temp;                    temp = a[i];                    a[i] = a[j];                    a[j] = temp;                }            }        }        for(i=0; i<n; i++)        {            if(i == n-1)                printf("%d\n",a[i]);            else                printf("%d ",a[i]);        }    }    return 0;}


0 0
原创粉丝点击