65 lines
1.0 KiB
C
65 lines
1.0 KiB
C
#include<stdio.h>
|
|
#include<stdlib.h>
|
|
int **read_matrix(int n,int m)
|
|
{
|
|
int **a;
|
|
a=(int**)malloc(n*sizeof(int*));
|
|
for(int i=0;i<n;i++)
|
|
{
|
|
*(a+i)=(int*)malloc(m*sizeof(int));
|
|
}
|
|
for(int i=0;i<n;i++)
|
|
{
|
|
for(int j=0;j<m;j++)
|
|
{
|
|
scanf("%d",*(a+i)+j);
|
|
}
|
|
}
|
|
return a;
|
|
}
|
|
|
|
void print_matrix(int **a,int n,int m)
|
|
{
|
|
for(int i=0;i<n;i++)
|
|
{
|
|
for(int j=0;j<m;j++)
|
|
{
|
|
printf("%d ",*(*(a+i)+j));
|
|
}
|
|
printf("\n");
|
|
}
|
|
}
|
|
|
|
void print_transpose(int **a,int n,int m)
|
|
{
|
|
for(int i=0;i<m;i++)
|
|
{
|
|
for(int j=0;j<n;j++)
|
|
{
|
|
printf("%d ",*(*(a+j)+i));
|
|
}
|
|
printf("\n");
|
|
}
|
|
}
|
|
|
|
void free_matrix(int **a,int n)
|
|
{
|
|
for(int i=0;i<n;i++)
|
|
{
|
|
free(*(a+i));
|
|
}
|
|
free(a);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
int n,m;
|
|
scanf("%d",&n);
|
|
scanf("%d",&m);
|
|
int **a;
|
|
a=read_matrix(n,m);
|
|
print_matrix(a,n,m);
|
|
print_transpose(a,n,m);
|
|
free_matrix(a,n);
|
|
return 0;
|
|
} |