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

来源:互联网 发布:有哪些题库软件 编辑:程序博客网 时间:2024/05/21 07:52

题目描述

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

输入

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

输出

输出每组排序的结果。

示例输入

2 1 23 121 10 1110

示例输出

1 210 111 121

代码如下:

#include<cstdio>#define N 99999int main(){int i,j,n,q[N],p[N],tam,temp,first;    while(scanf("%d",&n)!=EOF&&n!=0)    {first=1;        for(i=0;i<n;i++)        {scanf("%d",&q[i]);}        for(i=0;i<n;i++)        {            tam=q[i];            temp=0;            while (tam)              { temp+=tam%10;            tam=tam/10;              }              p[i]=temp;            }            for(i=0;i<n-1;i++)                for(j=0;j<n-i-1;j++)                    if(p[j]>p[j+1])                    {temp=p[j];                    p[j]=p[j+1];                    p[j+1]=temp;                    tam=q[j];                    q[j]=q[j+1];                    q[j+1]=tam;                    }    for(i=0;i<n;i++)    {        if(first) first=0;        else printf(" ");        printf("%d",q[i]);    }printf("\n");    }return 0;}
这是昨天在山东理工OJ上做的题,题目很简单。


0 0