#include<stdio.h>
#include<malloc.h>
//矩阵转置a(m*n)--->A(n*m)
// #define M 2
// #define N 3
// void zhuanzhi(int m, int n, double A[][N], double B[][M] )
// {
//
// int i,j;
// for (i=0;i<m;i++)
// for (j=0;j<n;j++)
// B[j][i]=A[i][j];
//
// for(i=0;i<n;i++)
// { for(j=0;j<m;j++)
// printf("%f ",B[i][j]);
// printf("\n");
// }
// }
//矩阵转置a(m*n)--->A(n*m)
double *zhuanzhi(int m,int n,double *a)
{
double *p=(double*)malloc(n*m*sizeof(double));
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
*(p+m*i+j)=*(a+n*j+i);
return p;
}
void main()
{ int i,j;
double *p,a[2][3]={{1,3,5},{7,9,11}};
p=zhuanzhi( 2, 3, *a);
for(i=0;i<3;i++)
{ for(j=0;j<2;j++)
printf("%f ",*(p+2*i+j));
printf("\n");
}
}