| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 819 人关注过本帖
标题:数字排序
只看楼主 加入收藏
yakic
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-4-8
结帖率:71.43%
收藏
已结贴  问题点数:5 回复次数:5 
数字排序
譬如有5个数,如何才能全部输出,由其中三个不重复的数字构成的排序呢
搜索更多相关主题的帖子: 如何 
2011-04-22 16:51
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:1 
讲明白点。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-22 17:36
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:1 
先排好序  然后一个一个的无后输出前面两个数字

给你个思路 呵呵

                                         
===========深入<----------------->浅出============
2011-04-22 17:53
唯我独魔
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:176
专家分:782
注 册:2011-4-13
收藏
得分:1 
#include<stdio.h>
void queue(int a,int b,int c);
int main(void)
{
    int a[5];
    int i,j,k;
    printf("请输入五个数");
    scanf("%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4]);
   for(i=0;i<3;i++)
      for(j=i+1;j<4;j++)
          for(k=j+1;k<5;k++)
              queue(a[i],a[j],a[k]);
          return 0;
}
void queue(int a,int b,int c)
{
 printf("%d%d%d ",a,b,c);
printf("%d%d%d ",a,c,b);
 printf("%d%d%d ",b,a,c);
printf("%d%d%d ",b,c,a);
 printf("%d%d%d ",c,b,a);
printf("%d%d%d ",c,a,b);
}
2011-04-22 18:25
帅的让人抽
Rank: 4
来 自:安徽
等 级:业余侠客
帖 子:94
专家分:224
注 册:2010-9-30
收藏
得分:1 
神马意思啊?

樱花下落的速度依然是秒速五厘米,即使发了一千次短信,
心与心之间也只能靠近一厘米……
2011-04-22 19:59
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:1 
程序代码:
#include <stdio.h> 

int print_a(int a[], int l) {
    int i;
    for (i = 0; i < l; i++) {
        printf("%d ", a[i]);
    }
    printf("\n");
    return 0;
}

int next_permutation(int p[], int l) {    // 这个函数用来求下一个排列
    int i, j = -1, k; 
    for (i = 0; i < l - 1; i++) { 
        if (p[i] < p[i + 1]) { 
            j = i; 
        } 
    } 
    if (j == -1) { 
        return 0; 
    } 
    for (i = l - 1; p[i] <= p[j]; i--); 
    k = p[i]; 
    p[i] = p[j]; 
    p[j] = k; 
    for (i = 1; i <= (l - j) / 2; i++) { 
        k = p[j + i]; 
        p[j + i] = p[l - i]; 
        p[l - i] = k; 
    } 
    return 1; 
} 

int main() { 
    int p[5], a[3], i, j, k;
    printf("Give me 5 integers: ");
    for (i = 0; i < 5; i++) {
        scanf(" %d", &p[i]);
    }
    for (i = 0; i < 5; i++) {    // 对输入的数字进行升序排列
        for (j = i + 1; j < 5; j++) {
            if (a[j] < a[i]) {
                k = a[i];
                a[i] = a[j];
                a[j] = k;
            }
        }
    }
    print_a(p, 5);
    for (i = 0; i < 3; i++) {
        for (j = i + 1; j < 4; j++) {
            for (k = j + 1; k < 5; k++) {
                a[0] = p[i];
                a[1] = p[j];
                a[2] = p[k];
                print_a(a, 3);
                while (next_permutation(a, 3)) {    // 这样就可以求一个升序列表的中各项的全排列
                    print_a(a, 3);    
                }
                printf("\n");
            }
        }
    }
    return 0; 
}
2011-04-22 20:38
快速回复:数字排序
数据加载中...
 
   



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

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