当前位置:编程学习 > C/C++ >>

问题一百一十八:个位数字之和排序

print?Description 
 
给定n个正整数,根据各位数字之和从小到大进行排序。  
 
Input 
 
 
输入数据有多组,每组数据占一行,每行的第一个数正整数n(1<=n<=20),表示整数个数,后面接n个正整数。当n为0时,不作任何处理,输入结束。 
 
 
Output 
 
输出每组排序的结果。 
 
Sample Input 
 
 
2 1 2 
3 121 10 111 

 
Sample Output 
 
 
1 2 
10 111 121 

Description

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

Input


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


Output

输出每组排序的结果。

Sample Input


2 1 2
3 121 10 111
0

Sample Output


1 2
10 111 121
 


[plain]  #include<stdio.h> 
 
int get(int num); 
 
int main() 

int j,i,n,a[21],c; 
      
        while(1) 
        { 
            scanf("%d",&n); 
            if(n==0) 
            { 
                break;       
            } 
 
            for(i=0;i<n;i++) 
            { 
                scanf("%d",&a[i]); 
             
            } 
            for(i=0; i<n-1; i++) 
            { 
                for(j=i+1; j<n; j++)  
                { 
                    if(get(a[i])> get(a[j])) 
                    { 
                      c=a[i]; 
                      a[i]=a[j]; 
                      a[j]=c; 
                    } 
                } 
            } 
            for(i=0;i<n;i++) 
            { 
                printf("%d", a[i]); 
                if(i<n-1) 
                { 
                    printf(" "); 
                } 
            } 
                printf("\n"); 
        } 
 
     return 0; 

 
int get(int num) 

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

#include<stdio.h>

int get(int num);

int main()
{
int j,i,n,a[21],c;
 
  while(1)
  {
   scanf("%d",&n);
   if(n==0)
   {
             break;  
   }

   for(i=0;i<n;i++)
   {
    scanf("%d",&a[i]);
   
   }
   for(i=0; i<n-1; i++)
   {
    for(j=i+1; j<n; j++)
    {
     if(get(a[i])> get(a[j]))
     {
       c=a[i];
       a[i]=a[j];
       a[j]=c;
     }
    }
   }
   for(i=0;i<n;i++)
   {
    printf("%d", a[i]);
    if(i<n-1)
    {
     printf(" ");
    }
   }
    printf("\n");
  }

     return 0;
}

int get(int num)
{
   int sum=0;

   while(num)
   {
       sum+=num%10;
    num/=10;
   }

   return sum;
}
  

 \
 


 

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,