这个程序要求是输出m个数中任取n个数的所有组合,我要抓狂了= =

1个回答

  • 个人看法:

    程序中数组作用域是全局的,递归中会改变数组;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