你的帮助将挽救我信心.....快
一个集合有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);
}
** 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]换下位置
不过那就是盗版。。。
----------------解决方案--------------------------------------------------------
我是说,不能只发代码,必须发了代码以后,写几个字……否则论坛就认为你只是引用了别人的话,自己没有发言……
----------------解决方案--------------------------------------------------------
快去下面我的帖子报到
----------------解决方案--------------------------------------------------------
?哪儿?
----------------解决方案--------------------------------------------------------
很久以前!
已经去过了!
----------------解决方案--------------------------------------------------------