生成矩阵

/*生成矩阵,输入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('\n');
    }
  free(arr);
  return 0;
}

 

posted @ 2013-11-12 17:34  永久指针  阅读(477)  评论(0编辑  收藏  举报