| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 284 人关注过本帖
标题:每个数字的数字的和的比较
只看楼主 加入收藏
yakic
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-4-8
结帖率:71.43%
收藏
已结贴  问题点数:5 回复次数:2 
每个数字的数字的和的比较
输入4个数,如何根据各位数字之和按从小到大排序呢?
比如
输入  123  27  1121  356
输出  1121  123  27  356
请问怎样做到呢?就是根据各位数字之和
搜索更多相关主题的帖子: 如何 
2011-05-12 16:39
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
程序代码:
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@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-12 16:58
fangdong65
Rank: 5Rank: 5
等 级:职业侠客
帖 子:73
专家分:301
注 册:2011-4-1
收藏
得分:3 
楼上写的很好,方法可以单独提出来
2011-05-12 18:31
快速回复:每个数字的数字的和的比较
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017735 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved