| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 818 人关注过本帖
标题:排列组合问题
取消只看楼主 加入收藏
蓝xuan
Rank: 4
等 级:业余侠客
帖 子:81
专家分:211
注 册:2012-3-31
结帖率:100%
收藏
已结贴  问题点数:40 回复次数:1 
排列组合问题
排列组合问题:
1、输入n个数(不重复),求n个数字的全排列
   如:n=3  全排列的数字为 1 2 3 则输出 123 132 213 231 321 312  
2、输入n和k(n》=k)求n个数字的(n,k)排列
   如n=3,k=2 输入的三个数位1 2 3 则输出 12 13 23
3、3、输入n个数(有重复),求n个数字的全排列
   如:n=3 全排列的数字为1 1 2 则输出 112 121 211
#include<stdio.h>
static int num = 0;
void mySwap(int *a, int *b) {
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}
void fullArray(int a[], int m, int n) {
   
    int i;
    if(m == n) {
        for(i=0;i<n;i++) {
            printf("%d ",a[i]);
        }
        num++;
        printf("\n");
    }
    else {
        for(i = m; i<n; i++) {
            mySwap(&a[m],&a[i]);
            fullArray(a,m+1,n);
            mySwap(&a[m],&a[i]);
        }
    }
}
int  main() {
    int k=1,n,j=0,i=0;
    int *array;
    scanf("%d",&n);
    array = (int *)malloc(sizeof(int)*n);
    for(i=0;i<n;i++) {
        array[i] = k;
        k++;
    }
    printf("\n");
    fullArray(array,0,n);
    printf("一共有%d种排列\n",num);
    return 0;
}
第一题做出来了,第二题有思路但是一直没实现啊,第三题没做出来啊啊。。。。求助!!
搜索更多相关主题的帖子: include 
2013-04-01 23:15
蓝xuan
Rank: 4
等 级:业余侠客
帖 子:81
专家分:211
注 册:2012-3-31
收藏
得分:0 
自己顶起来。。。。求助啊啊啊啊啊
2013-04-02 12:46
快速回复:排列组合问题
数据加载中...
 
   



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

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