| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3288 人关注过本帖
标题:求 10000 以内所有高位数字小于低位数字的数,如 25,349 等该怎么编程?
只看楼主 加入收藏
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:15 
求 10000 以内所有高位数字小于低位数字的数,如 25,349 等该怎么编程?
搜索更多相关主题的帖子: 怎么编程 
2014-09-18 11:33
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:0 
10000以内的所有数都判断是否满足条件(效率低),另一个就是直接按照高位比低位小的规则来生成10000以内的数
2014-09-18 12:52
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
收藏
得分:0 
可是该怎么编写高效率的代码?我编个低效率的写了好长时间还不能运行
2014-09-18 13:12
You0
Rank: 2
等 级:论坛游民
帖 子:29
专家分:63
注 册:2014-8-2
收藏
得分:0 
我有一个很笨的想法,先用第一个for循环把 2位数的输出,再用一个for循环 输出3位数,然后再一个for循环。。。。
2014-09-18 13:46
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
收藏
得分:0 
关键就是我也是这么想的所以搞得很惨,而且运行的时候数据不受控制啊,与我想要得到的不一样
2014-09-18 13:49
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:2 
程序代码:
#include <stdio.h>

int main( void )
{
    for( unsigned a=0; a<=6; ++a )
        for( unsigned b=a+(a!=0); b<=7; ++b )
            for( unsigned c=b+(b!=0); c<=8; ++c )
                for( unsigned d=c+(c!=0); d<=9; ++d )
                    printf( "%u\n", a*1000+b*100+c*10+d );

    return 0;
}

收到的鲜花
  • 书生等待2014-09-18 16:26 送鲜花  3朵   附言:好文章
2014-09-18 14:37
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:0 
#include <stdio.h>

int main()
{
    char  a,b,c,d;
    for(a=0;a<=6;a++)
    {
        for(b=a+1;b<=7;b++)
        {
            for(c=b+1;c<=8;c++)
            {
                for(d=c+1;d<=9;d++)
                {
                    printf("%d%d%d%d  ",a,b,c,d);
                }
            }
        }

    }
    printf("\n");

    return 0;
}
2014-09-18 19:37
学习困难户
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2014-5-16
收藏
得分:0 
七楼的大神很感激你的代码,但是为什么1~120之间的数就找不到呢?
同时感谢六楼的神一般的高手
2014-09-19 11:10
zhoupaul1
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-9-19
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>

int figure()
{
     int i,j,k,result;
     //最外围循环,为百位数
     for (i=0; i<10; ++i)
         //中间循环,为十位数
         for(j=0;j<10; ++j)         
           //內围循环,为个位数
           for(k=0; k<10; ++k)
           {
                 //将三个数字进行判断分步按照所在的位数乘以100和10赋值给result,并打印 结果
                 result=k+j*10+i*100;
                 if (j<k && i<j)  //如果百位数的值大于十位数的值,并且十位数的值大于个位数,将打印该数值
                 printf("%d,",result);
                 }
}

int main(int argc, char *argv[])
{
  figure();
  system("PAUSE");   
  return 0;
}
2014-09-19 13:31
zhoupaul1
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-9-19
收藏
得分:0 
不好意思,这个只写到了判断1到1000的。如果要判断1到10000的数值,再加一个for循环,同时if判断语句中的内容做一下修改就好了。
2014-09-19 13:40
快速回复:求 10000 以内所有高位数字小于低位数字的数,如 25,349 等该怎么编程 ...
数据加载中...
 
   



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

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