#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int create_mat(int row,int col)
{
int i,j;
int **init;
init=(int**)malloc(row*sizeof(int*));
for(i=0;i<row;i++)
init[i]=(int*)malloc(col*sizeof(int));
for(i=0;i<row;i++)
for(j=0;j<col;j++)
init[i][j]=rand()%100;
for(i=0;i<row;i++)
for(j=0;j<col;j++)
if(j!=col-1)printf("%6d ",init[i][j]);
else printf("%6d\n",init[i][j]);
return init;
}
void apReverseMat2Di0(int **init,int row,int col)
{
int i,j,t;
int **dest;
if (init==NULL||row<=0||col<=0)
{
printf("please enter a correct data.");
return NULL;
}
dest=(int**)malloc(row*sizeof(int*));
for(i=0;i<row;i++)
init[i]=(int*)malloc(col*sizeof(int));
for(i=0;i<row;i++)
for(j=0;j<col;j++)
dest[i][j]=rand()%100;
for(i=0;i<row;i++)
for(j=i;j<col;j++)
{
if(i!=j)
{
t=init[i][j];
init[i][j]=dest[j][i];
dest[j][i]=t;
}
}
return dest;
}
void apDisplayMat2Di(int **data, int row, int col)
{
int i=0,j=0;
for (i=0;i<row;i++)
{
printf("\n");
for (j=0;j<col;j++)
printf("\t%d",data[i*row+j]);
}
printf("\n");
}
void main()
{
int a,b,row,col;
printf("input row and col:\n");
scanf("%d%d",&row,&col);
printf("init mat:\n");
a=create_mat(row,col);
apDisplayMat2Di(a,row,col);
printf("dest mat:\n");
b=apReverseMat2Di0(a,row,col);
apDisplayMat2Di(b,row,col);
system("pause");
return 0;
}
求大神解答啊,小弟水平实在很低,要是有什么很无脑的错误或者问题,请见谅。。。