题解 | #序列重组矩阵#
序列重组矩阵
http://www.nowcoder.com/practice/7548f8f5e44c42fa84fb2323d899a966
#include<stdio.h>
#include<malloc.h>
int main(void)
{
int n,m;
int *a;
int **num;
scanf("%d %d",&n,&m);
a=(int *)malloc(sizeof(int)*n*m);
num=(int **)malloc(sizeof(int *)*n);
for(int i=0;i<n;i++)
num[i]=(int *)malloc(sizeof(int)*m);
for(int i=0;i<m*n;i++)
scanf("%d",&a[i]);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
num[i][j]=a[i*m+j];//二维数组和一位数组的相互间的转换,m代表每一行有多少列,所以i*m表示第几行,再加上j则代表第几行第几列
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
printf("%d ",num[i][j]);
printf("\n");
}
return 0;
}