| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1176 人关注过本帖
标题:出一题,娱乐一下。
只看楼主 加入收藏
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
结帖率:94.64%
收藏
已结贴  问题点数:100 回复次数:18 
出一题,娱乐一下。
将一个随机的整数转换成一个按各位上数值大小排序的整数,例如整数2541转换成1245,整数521368转换成123568,输入一个int能容纳的正整数,输出排序后的结果,要求:除scanf和printf之外不能使用其它库函数。
搜索更多相关主题的帖子: 娱乐 正整数 
2012-07-29 23:47
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:9 
支持鼓励这种娱乐方式

重剑无锋,大巧不工
2012-07-30 00:04
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:9 
貌似还没人看见

程序代码:
#include <stdio.h>

int main(void)
{
    int x = 0;
    int num[32] = {0};
    int i = 0;
    int j = 0;
    int tmp = 0;
    int i_min = 0;

    scanf("%d", &x);

    do
    {
        num[i] = x % 10;
        x /= 10;
        i++;
    } while (x > 0);
   
    tmp = i;

    for (i = 0; i < tmp; i++)
    {
        i_min = 0;
        for (j = 1; j < tmp; j++)
        {
            if (num[j] < num[i_min])
            {
                i_min = j;
            }
        }
       
        //如果大于10则停止
        if (num[i_min] >= 10)
        {
            break;
        }

        printf("%d", num[i_min]);
        num[i_min] = 10;
    }

    return 0;
}

2012-07-30 00:14
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 2楼 beyondyf
恩,差不多就要娱乐一下。

My life is brilliant
2012-07-30 00:36
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 3楼 zklhp
恩,但是如果我输入101010101,应该输出11111,而不是000011111

My life is brilliant
2012-07-30 00:43
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:9 
#include <stdio.h>

int f(int i)
{
    int j,m=1;
    for(j=0;j<i;j++)
        m*=10;
    return m;
}

int main(void)
{
    int num,a[100];
    scanf("%d",&num);
    int i=0,j,d,h,sum=0,k=num;
    while(k!=0)
    {
        a[i]=k%10;
        k/=10;
        i++;
    }
    d=i;
    for(i=1;i<d;i++)
        for(j=0;j<d-1;j++)
            if(a[j]<a[j+1])
            {
                h=a[j];
                a[j]=a[j+1];
                a[j+1]=h;
            }
    for(i=0;i<d;i++)
        sum+=a[i]*f(i);
    printf("%d\n",sum);
    return 0;
}

2012-07-30 04:14
yuma
Rank: 12Rank: 12Rank: 12
来 自:银河系
等 级:贵宾
威 望:37
帖 子:1934
专家分:3012
注 册:2009-12-22
收藏
得分:9 
接个分,书还没学完,现在我还堆栈不了。

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2012-07-30 07:40
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:9 
我看就是3楼的思路,最多再处理一下输出而已。
2012-07-30 09:15
姻脂梦
Rank: 6Rank: 6
等 级:侠之大者
帖 子:264
专家分:424
注 册:2012-7-3
收藏
得分:9 
拿个分吧,支持一下
2012-07-30 09:22
岩枭
Rank: 2
等 级:论坛游民
帖 子:12
专家分:38
注 册:2012-7-18
收藏
得分:9 
和我们的课堂练习,雷同···
2012-07-30 09:53
快速回复:出一题,娱乐一下。
数据加载中...
 
   



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

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