我编写了这个程序来从 1-N 中找到不同的可能子集。该代码在 N=5 之前工作正常,但之后它给出了错误的输出。什么是错误?
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n, i,j ;
cin>>n;
int limit = 1<<n;
int arr[limit];
for( i=0; i<limit; i++)
arr[i] = i+1;
for( i=0; i<limit; i++){
for( j=0; j<limit; j++){
( i & 1<<j)? printf("%d\t", arr[j]) : 0;
}
cout<<endl;
}
cout<<(1<<n)<<endl;
return 0;
}