数字范围是0~9,即集合元素在10个及以下
//Subset.h
#ifndef SUBSET_H
#define SUBSET_H
class Subset
{
public:
Subset();
virtual ~Subset();
void Find_subset(int cur, int A[], int Asize);
void Print(int A[], int Asize);
int Array[10];
private:
};
#endif // SUBSET_H
//main.cpp
#include <iostream>
#include "Subset.h"
using namespace std;
int main()
{
int i, num, A[10];
Subset Array1;
cin >> num;
for(i=0; i<num; i++)
{
cin >> Array1.Array[i];
}
Array1.Find_subset(0, A, num);
return 0;
}
//Subset.cpp
#include <iostream>
#include "Subset.h"
using namespace std;
Subset::Subset()
{
}
Subset::~Subset()
{
}
void Subset::Find_subset(int cur, int A[], int Asize)
{
if(cur >= Asize)
{
Print(A, Asize);
}
else
{
A[cur] = Array[cur];
Find_subset(cur+1, A, Asize);
A[cur] = -111;
Find_subset(cur+1, A, Asize);
}
}
void Subset::Print(int A[], int Asize)
{
int i;
for(i=0; i<Asize; i++)
{
if(A[i] != -111)
{
cout << A[i] << " ";
}
}
cout << endl;
}
输入:3
1 2 3
输出:1 2 3
1 2
1 3
1
2 3
2
3
刚写完的数据结构课的作业就放上来了,IDE用的是codeblocks,新人一枚,希望各路大神多指点哈

595

被折叠的 条评论
为什么被折叠?



