| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1917 人关注过本帖, 1 人收藏
标题:一个小问题,希望各位能给与帮助
只看楼主 加入收藏
皓月
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-4-29
收藏(1)
 问题点数:0 回复次数:4 
一个小问题,希望各位能给与帮助

C是否能实现数字的排列与组合.

能不能举几例子,

谢谢

搜索更多相关主题的帖子: 给与 数字 排列 例子 
2004-05-19 23:15
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

当然可以,任何程序语言都可以完成这样的任务,也必须完成这样的任务。

你只要给出你的真确的算法,利用 3 种循环语句 for... do while... while 以及 if else 判断语句,可以完成任何实现逻辑功能的任务。


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-05-20 09:27
皓月
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-4-29
收藏
得分:0 

能否写出一个

比如说10个数里拿出4个数任意组合.谢谢

2004-05-20 21:17
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 

没有现成的程序,给你一个全排列吧,差不多的

#include <stdio.h> #include <malloc.h> int *s,*c,k; /*s用来记录哪些数已经被用过,c放一种组合*/ void fun(int n) /*此函数是寻找没有被用过的数字放入数组c中*/ { int i; for(i=0;i<n;i++) { if(s[i]==0) /*如果该数未用过*/ { c[k++]=i+1; /*将该数放入C中*/ s[i]=1; /*设置该数为已用*/ fun(n); /*递归寻找下个数*/ s[i]=0; /*做到这一步说明已经找到一个解,回溯法寻找下个解*/ --k; } } if(k==n) /*k等于n说明找到了一个正确的解,输出*/ { for(i=0;i<n;i++)printf("%7d",c[i]); printf("\n"); } } void main() { int n; do{ printf("请输入一个整数:"); scanf("%d",&n);} while(n<0||n>32767); s=(int *)malloc(sizeof(int)*n); c=(int *)malloc(sizeof(int)*n); for(k=0;k<n;k++)s[k]=c[k]=0; k=0; fun(n); }


我的主页 http://www.
2004-05-20 22:56
陆苗
Rank: 2
等 级:论坛游民
帖 子:52
专家分:39
注 册:2016-5-31
收藏
得分:0 
eg.
#include<stdio.h>
int main(){
    int i, j, k;
    printf("\n");
    for (i = 1; i < 5;i++)
    for (j = 1; j < 5;j++)
    for (k = 1; k < 5;k++)
    if (i != j&&j != k&&k != i)
        printf("%d %d %d\n", i, j, k);
}
四个数中0,1,2,3,选三位不重复进行排列组合。

------虚心学习,不懂就问
2016-05-31 16:55
快速回复:一个小问题,希望各位能给与帮助
数据加载中...
 
   



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

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