个人看法:
程序中数组作用域是全局的,递归中会改变数组;else中输出时是不是改为printf("%d",a[h]),之前输出的好像是地址,我对printf函数不熟悉,可以直接cout.
建议换算法.用与数组等位数的二进制表示是否输出,1输出,0不输出.所有的二进制数列完,就输出完毕了.
下面是一个集合的所有子集输出,看看吧:
#include
#include
using namespace std;
int main()
{
int size;
cout size;
int * array = new int[ size ];
char * str = new char[ size + 1 ];
for( int i = 0; i < size; i ++ )
array[ i ] = i;
cout