Write a C program to perform the following:
i. Addition of Two Matrices
ii. Multiplication of Two Matrices
iii. Write a C program that uses functions to perform the Transpose of a matrix with memory dynamically allocated for the new matrix as row and column counts may not be same.
#include<stdio.h>
#include<conio.h>
void read_arr(int a[10][10],int row,int col)
{
int i,j; for(i=1;i<=row;i++)
{
for(j=1;j<=col;j++)
{
printf("Enter Element %d %d : ",i,j);
scanf("%d",&a[i][j]);
}
}
}
void add_arr(int m1[10][10],int m2[10][10],int m3[10][10],int row,int col)
{
int i,j;
for(i=1;i<=row;i++)
{
for(j=1;j<=col;j++)
{
m3[i][j] = (m1[i][j] + m2[i][j]);
}
}
}
void mul_arr(int m1[10][10],int m2[10][10],int m3[10][10],int row,int col)
{
int i,j,k;
for(i=1;i<=row;i++)
{
for(j=1;j<=col;j++)
{ m3[i][j]=0;
for (k=1;k<=row;k++)
{
m3[i][j] = m3[i][j] + (m1[i][k] * m2[k][j]);
}
}
}
}
void print_arr(int m[10][10],int row,int col)
{
int i,j; for(i=1;i<=row;i++)
{
for(j=1;j<=col;j++)
{
printf("%d ",m[i][j]);
}
printf("\n");
}
}
void transpose(int m[10][10],int row,int col)
{
int i,j; for(i=1;i<=row;i++)
{
for(j=1;j<=col;j++)
{
printf("%d ",m[j][i]);
}
printf("\n");
}
}
void main()
{
int m1[10][10],m2[10][10],m3[10][10],row,col;
clrscr();
printf("Enter number of rows :");
scanf("%d",&row);
printf("Enter number of colomns :");
scanf("%d",&col); read_arr(m1,row,col);
printf("\n THE A MATRIX ELEMENTS:\n");
print_arr(m1,row,col);
read_arr(m2,row,col);
printf("\n THE B MATRIX ELEMENTS:\n");
print_arr(m2,row,col);
add_arr(m1,m2,m3,row,col);
printf("\n MATRIX ADDITION\n");
print_arr(m3,row,col);
mul_arr(m1,m2,m3,row,col);
printf("\n MATRIX MULTIPLICATION:\n");
print_arr(m3,row,col);
printf("\n Transpose of MATRIX\n");
transpose(m3,row,col);
getch();
}
output:
Enter number of rows :2
Enter number of colomns :2
Enter Element 1 1 : 12
Enter Element 1 2 : 10
Enter Element 2 1 : 21
Enter Element 2 2 : 25
THE A MATRIX ELEMENTS:
12 10
21 25
Enter Element 1 1 : 21
Enter Element 1 2 : 13
Enter Element 2 1 : 15
Enter Element 2 2 : 17
THE B MATRIX ELEMENTS:
21 13
15 17
MATRIX ADDITION
33 23
36 42
MATRIX MULTIPLICATION:
402 326
816 698
Transpose of MATRIX
402 816
326 698
Comments
Post a Comment