当前位置: 代码迷 >> C语言 >> 你的帮助将挽救我信心.....快
  详细解决方案

你的帮助将挽救我信心.....快

热度:407   发布时间:2008-05-09 13:51:03.0
你的帮助将挽救我信心.....快
一个集合有m个元素,要输出它的所有的有n个元素的子集
本来是m=5,n=3的,那就比较简单了
#include <stdio.h>
void main()
{
int i,j k;
int a[5];
for(l=0;l<5;l++)
scanf("%d",&a[l]);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
for(k=0;k<5;k++)
{
if(i==j||j==k||i==k)
continue;
else
printf("%d %d %d",a[i],a[j],a[k]);}
}
可后来我要扩展到m,n时,我太笨了,搞不定,大家指导一下
搜索更多相关的解决方案: 信心  

----------------解决方案--------------------------------------------------------
for(l=0;l<5;l++)
scanf("%d",&a[l]);
你这个是不小心写成大写的呢?
还是l?
用宏定义应该可以解决问题的
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int i,j k;
int a[5];
for(l=0;l<5;l++)  //L没定义
scanf("%d",&a[l]);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
for(k=0;k<5;k++)
{
if(i==j||j==k||i==k)
continue;
else
printf("%d %d %d",a[i],a[j],a[k]);}
}
----------------解决方案--------------------------------------------------------
/********************************************************
** Highlight software by yzfy(雨中飞燕) http://yzfy.org *
*********************************************************/
#include <iostream>

void comb(int *a,bool *m,int begin,int len,int need)
{
    int sum=0;
    for (int i=0;i<len;i++)if (m[i])sum++;
    if (sum == need)
    {
        for (int i=0;i<len;i++)
            if (m[i])printf("%d ",a[i]);
        printf("\n");
    }
    else
   
{
        for (int i=begin;i<len;i++)
        {
            m[i]=true;
            comb(a,m,i+1,len,need);
            m[i]=false;
        }
    }
}

int main()
{
    int a[10]={1,2,3,4,5,6,7,8,9,10};
    bool m[10]={0};
    comb(a,m,0,5,3);
}


晕乎,还不能光发代码……
----------------解决方案--------------------------------------------------------
不想要版权声明可以把[quote]换下位置
不过那就是盗版。。。
----------------解决方案--------------------------------------------------------
我是说,不能只发代码,必须发了代码以后,写几个字……否则论坛就认为你只是引用了别人的话,自己没有发言……
----------------解决方案--------------------------------------------------------
快去下面我的帖子报到
----------------解决方案--------------------------------------------------------
?哪儿?
----------------解决方案--------------------------------------------------------
很久以前!
已经去过了!

----------------解决方案--------------------------------------------------------
  相关解决方案