每个数字的数字的和的比较
输入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@~ #