#include <iostream>
using namespace std;
#define N 20 int b[N],t,n;
int main(int argc, char *argv[])
{
int x,i,t;
cin>>n;
for (x=0;x<=(1<<n)-1;x++)
{
t=x;
for (i=0;i<n;i++)
{ b[i]=t%2 ;t/=2; }
for (i=0;i<n;i++)
cout<<b[i]<<" ";
cout<<endl;
}
return 0; }
转换二进制的时候,需要倒序输出的。
如幻天芒所说,是倒序的。记得c里也能对数组进行reverse吧?调用下就OK了。
此外,把你的输出序列改成:
for (i=n;i>0;i--)
cout<<b[i-1]<<" ";
也能达到目的。
另外,你这段程序让人费解,不知道你要做什么,代码的意思以及逻辑有点混乱。