#include<stdio.h> int main(){ int n; scanf("%d",&n); int a[n],b[n],i; for(i=0;i < n;i++){ scanf("%d",&a[i]); } //求出数各个数位的和放在数组中 for(i = 0;i < n;i++){ b[i] = a[i] / 10000+a[i] / 1000 % 10 + a[i] / 100 % 10+ a[i] / 10 % 10+a[i] % 10; } //排序 int j,k,temp; for(i = 0;i < n-1;i++){ k = i; for(j = i + 1;j < n;j++){ if(b[j] < b[k]) k = j; } if(k != i){ temp = b[i]; b[i] = b[k]; b[k] = temp; } } for(i = 0;i < n;i++){ printf("%d ",b[i]); } return 0; } /************************************************************** Problem: 1166 User: admin Language: C Result: Accepted Time:12 ms Memory:1144 kb ****************************************************************/