Code
#include <stdio.h>
int separate(int x)
{
int s = 0;
while(x>0)
{
s += x%10;
x = x/10;
}
return s;
}
int main()
{
int n,i,j,t,a[10];
while(scanf("%d",&n)&&n!=0)
{
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i-1; j++)
{
if(separate(a[j]) > separate(a[j+1]))
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
printf("%d",a[0]);
for(i=1; i<n; i++)
printf(" %d",a[i]);
printf("\n");
}
return 0;
}
反思:数组练习题,写一个separate()函数,返回各数字之和,再根据各数字之和进行冒泡排序。