生成矩阵

/*生成矩阵,输入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;
}
原文地址:https://www.cnblogs.com/yongjiuzhizhen/p/3419938.html