| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1560 人关注过本帖
标题:我编的排序问题,请问怎样简单的编写?
只看楼主 加入收藏
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
 问题点数:0 回复次数:12 
我编的排序问题,请问怎样简单的编写?
/*题目:输入1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?*/
void main()
{
int number,a,b,c,d;
printf("请输入这个四位数:\n");
scanf("%4d",&number);
a=number/1000;
b=number%1000/100;
c=number%100/10;
d=number%10;
printf("这个四位数为%d\n",number);
printf("%d%d%d\n",a,b,c);
printf("%d%d%d\n",a,b,d);
printf("%d%d%d\n",a,c,b);
printf("%d%d%d\n",a,c,d);
printf("%d%d%d\n",a,d,b);
printf("%d%d%d\n",a,d,c);
printf("%d%d%d\n",b,a,c);
printf("%d%d%d\n",b,a,d);
printf("%d%d%d\n",b,c,a);
printf("%d%d%d\n",b,c,d);
printf("%d%d%d\n",b,d,a);
printf("%d%d%d\n",b,d,c);
printf("%d%d%d\n",c,a,b);
printf("%d%d%d\n",c,a,d);
printf("%d%d%d\n",c,b,a);
printf("%d%d%d\n",c,b,d);
printf("%d%d%d\n",c,d,a);
printf("%d%d%d\n",c,d,b);
printf("%d%d%d\n",d,a,b);
printf("%d%d%d\n",d,a,c);
printf("%d%d%d\n",d,b,a);
printf("%d%d%d\n",d,b,c);
printf("%d%d%d\n",a,c,a);
printf("%d%d%d\n",d,c,b);
}

是否可以用数组简单解决?
搜索更多相关主题的帖子: printf number 编写 位数 
2008-04-10 10:25
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
数组法:
程序代码:
#include<stdio.h>
int main(void)
{
        int a[4],i,j,k,m,l=0;
        char c;
        printf("请输入4个10以内的正整数,enter结束单次输入:\n");
        for(i=0;i<4;i++)
        {
                do
                {
                        printf("请输入第%d个数:\n",i+1);
                        scanf("%d",&a[i]);
                        while(c=getchar()!='\n'&&c!=EOF);
                        if(a[i]>9||a[i]<0)
                                printf("您的输入有误,请重新输入。\n");
                }
                while(a[i]>9||a[i]<0);
        }
        for(i=0;i<4;i++)
                for(j=0;j<4;j++)
                        for(k=0;k<4;k++)
                                for(m=0;m<4;m++)
                                        if(i!=j&&i!=k&&i!=m&&j!=k&&j!=m&&k!=m)
                                        {
                                                printf("  %d%d%d%d ",a[i],a[j],a[k],a[m]);
                                                l++;
                                                if(l%3==0)
                                                        puts(" ");
                                        }

          return 0;
          getch();

}

                        
2008-04-10 11:29
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
得分:0 
我编的太麻烦了!

[[it] 本帖最后由 yjcf 于 2008-4-10 11:48 编辑 [/it]]

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-04-10 11:29
xiaosan669
Rank: 1
来 自:西北工业大学
等 级:新手上路
帖 子:78
专家分:0
注 册:2007-3-9
收藏
得分:0 
天呀!

========== 我的世界,我说了算! ==========
2008-04-10 11:46
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
对1楼和2楼的代码都无语了

" border="0" />[color=white]
2008-04-10 11:48
xiaosan669
Rank: 1
来 自:西北工业大学
等 级:新手上路
帖 子:78
专家分:0
注 册:2007-3-9
收藏
得分:0 
#include "stdio.h"
int main(void)
{
    int i,j,k;
    for(i=1;i<5;i++)
        for(j=1;j<5;j++)
            for(k=1;k<5;k++)
            {
                if(i!=k&&i!=j&&j!=k)
                    printf("%d,%d,%d",i,j,k);
                printf("\n");
            }
    return 0;
}

========== 我的世界,我说了算! ==========
2008-04-10 11:52
xiaosan669
Rank: 1
来 自:西北工业大学
等 级:新手上路
帖 子:78
专家分:0
注 册:2007-3-9
收藏
得分:0 
这个貌似是以前的100个经典题目中的....

========== 我的世界,我说了算! ==========
2008-04-10 11:53
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
得分:0 
[bo]以下是引用 [un]xiaosan669[/un] 在 2008-4-10 11:52 的发言:[/bo]

#include "stdio.h"
int main(void)
{
    int i,j,k;
    for(i=1;i

不一样啊~~着个要求是输入4个数排序,你那个只是用1,2,3,4循环组合而成的阿~~

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-04-10 13:12
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
得分:0 
回复 2# 的帖子
请问2楼
while(c=getchar()!='\n'&&c!=EOF);
这句该怎么理解?

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-04-10 13:37
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
谢谢一个女同志,你的挑错就是我前进的最大动力
程序代码:
/*
呵呵,刚才马虎,原来是输出三位数。

现已改正,请楼主运行之后,作个参考。

*/
#include<stdio.h>
int main(void)
{
        int a[4],i,j,k,l=0;
        char c;
        printf("请输入4个10以内的正整数,enter结束单次输入:\n");
        for(i=0;i<4;i++)
        {
                do
                {
                        printf("请输入第%d个数:\n",i+1);
                        scanf("%d",&a[i]);
                        while(c=getchar()!='\n'&&c!=EOF);
                        if(a[i]>9||a[i]<0)
                                printf("您的输入有误,请重新输入。\n");
                }
                while(a[i]>9||a[i]<0);
        }
        for(i=0;i<4;i++)
                for(j=0;j<4;j++)
                        for(k=0;k<4;k++)
                                        if(i!=j&&i!=k&&j!=k)
                                        {
                                                printf("  %d%d%d ",a[i],a[j],a[k]);
                                                l++;
                                                if(l%3==0)
                                                        puts(" ");
                                        }

          return 0;
          getch();

}

                        
2008-04-10 13:39
快速回复:我编的排序问题,请问怎样简单的编写?
数据加载中...
 
   



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

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