Code:
#include <stdio.h>
#include <stdlib.h>
typedef int *matrix_member;
void print_matrix(matrix_member matrix,int size) ;
void multiply_matrix(matrix_member m1,matrix_member m2,matrix_member result,int size);
void add_matrix(matrix_member m1,matrix_member m2,matrix_member result,int size);
matrix_member create_matrix(int *size);
matrix_member return_address(int i,int j,matrix_member m,int size);
matrix_member allocate_memory(int num);
int main()
{
int size1,size2;
matrix_member matrix1,matrix2,addition_matrix,multiplication_matrix;
//create first matrix
//create second matrix
//print them
//add them and print the result
//multiply them and print the result
matrix1=create_matrix(&size1);
matrix2=create_matrix(&size2);
print_matrix(matrix1,size1);
print_matrix(matrix2,size2);
addition_matrix= allocate_memory(size1);
add_matrix(matrix1,matrix2,addition_matrix,size1);
print_matrix(addition_matrix,size1);
multiply_matrix(matrix1,matrix2,multiplication_matrix,size2);
print_matrix(multiplication_matrix,size2);
return 0;
}
matrix_member allocate_memory(int num)
{
matrix_member t;
t=malloc(sizeof(int)*(num*num));
return (t);
}
void ask_matrix_size(int *num)
{
printf("enter size of matrix:");
scanf("%d",num);
}
//-------------------problem--------------
void read_matrix(matrix_member matrix,int size)
{
int i,j,number;
for(i=0;i<size*size;i++)
{
printf("enter value of matrix:");
scanf("%d",&matrix[i]);
}
}
//-------------------------------------------------------!!!!!!
void print_matrix(matrix_member matrix,int size)
{
int i,j;
for (i=0;i<size;i++)
{
for(j=0;j<size;j++)
printf("%d ",*return_address(i,j,matrix,size));
printf("\n");
}
printf("\n");
}
matrix_member create_matrix(int *size)
{
matrix_member st_matrix;
ask_matrix_size(size);
st_matrix= allocate_memory(*size);
read_matrix(st_matrix,*size);
return(st_matrix);
}
void add_matrix(matrix_member m1,matrix_member m2,matrix_member result,int size)
{
int i;
for(i=0;i<size*size;i++)
result[i] = m1[i] + m2[i];
}
matrix_member return_address(int i,int j,matrix_member m,int size)
{
int a;
for(a=0;a<(i*size+j);a++);
m++;
return m;
}
void multiply_matrix(matrix_member m1,matrix_member m2,matrix_member result,int size)
{
}
the output: