每个数字的数字的和的比较
											输入4个数,如何根据各位数字之和按从小到大排序呢?比如
输入 123 27 1121 356
输出 1121 123 27 356
请问怎样做到呢?就是根据各位数字之和
 程序代码:
程序代码:
root@~ #cat h.c
#include <stdio.h>
struct number {
        int len;
        int number;
};
int main (void) {
        struct number num[4];
        int n,i,j,t1,t2;
        int sum(int n);
//input
        for(i=0;i<4;i++) {
                scanf("%i",&num[i].number);
                num[i].len=sum(num[i].number);
        }
//sort
        for(i=0;i<3;i++) {
                for(j=i+1;j<4;j++) {
                        if(num[i].len>num[j].len) {
                                t1=num[i].len;
                                num[i].len=num[j].len;
                                num[j].len=t1;
                                t2=num[i].number;
                                num[i].number=num[j].number;
                                num[j].number=t2;
                        }
                }
        }
//print
        for(i=0;i<4;i++) {
                printf("%i ",num[i].number);
        }
        printf ("\n");
        return 0;
}
int sum(int n) {
        int sum=0;
        do {
                sum+=n%10;
                n/=10;
        }while(n!=0);
        return sum;
}
root@~ #
root@~ #./h
123 27 1121 356
1121 123 27 356
root@~ #										
					
	