School Commit Init
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
#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;
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
#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;
|
||||
}
|
||||
int 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");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int **matrix_multiply(int **a,int **b,int n,int m,int k)
|
||||
{
|
||||
int **c;
|
||||
c=(int**)malloc(n*sizeof(int*));
|
||||
for(int i=0;i<n;i++)
|
||||
{
|
||||
*(c+i)=(int*)malloc(k*sizeof(int));
|
||||
}
|
||||
for(int i=0;i<n;i++)
|
||||
{
|
||||
for(int j=0;j<k;j++)
|
||||
{
|
||||
*(*(c+i)+j)=0;
|
||||
for(int l=0;l<m;l++)
|
||||
{
|
||||
*(*(c+i)+j)+=*(*(a+i)+l)**(*(b+l)+j);
|
||||
}
|
||||
}
|
||||
}
|
||||
return c;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
int n,m,k;
|
||||
scanf("%d",&n);
|
||||
scanf("%d",&m);
|
||||
scanf("%d",&k);
|
||||
int **a;
|
||||
a=read_matrix(n,m);
|
||||
int **b;
|
||||
b=read_matrix(m,k);
|
||||
int **c;
|
||||
c=matrix_multiply(a,b,n,m,k);
|
||||
print_matrix(c,n,k);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user