/*生成矩阵,输入n,输出n*n矩阵,生成的格式如下,例如n=3: 0 0 0 0 0 1 0 1 0 ...... 1 1 1 */ #include <stdio.h> #include <stdlib.h> int main() { int n; int i,j; scanf("%d",&n); int row = 1 << n; int* arr = (int*)malloc(row*n*sizeof(int)); for(i=0;i<row;++i) { for(j=0;j<n;j++) { if((i>>j)&1) { *(arr+i*n+n-j-1) = 1; } else { *(arr+i*n+n-j-1) = 0; } } } for(i=0;i<row;i++) { for(j=0;j<n;j++) { printf("%2d ",*(arr+i*n+j)); } putchar(' '); } free(arr); return 0; }