Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a program in C that reads two int matrices of the same size from the user

ID: 3699082 • Letter: W

Question

Write a program in C that reads two int matrices of the same size from the user and then perform following operation as per the user input.

+ : this operation performs matrix addition.

- : this operation performs matrix subtraction.

e : this operation ends the program.

Your program should have the following functions

void scan_matrix(int n_rows, int n_columns, const int matrix[n_rows][n_columns])

void print_matrix(int n_rows, int n_columns, const int matrix[n_rows][n_columns])

void add(int n_rows, int n_columns, const int matrix_1[n_rows][n_columns], const int matrix_2[n_rows][n_columns], int result[n_rows][n_columns])

void sub(int n_rows, int n_columns, const int matrix_1[n_rows][n_columns], const int matrix_2[n_rows][n_columns], int result[n_rows][n_columns])

note;use multidimensional array concept dont use malloc or alloc or struct

Example:

Enter Sizes: 3 3

Enter Matrix:

2 4 6

8 9 10

6 7 8

Enter Matrix:

1 2 3

2 3 4

5 6 7

Enter Operation: +

3 6 9

10 12 14

11 13 15

Enter Operation: -

1 2 3

6 6 6

1 1 1

Enter Operation: e

Explanation / Answer

#include <stdio.h>
//prototypes
void scan_matrix(int n_rows, int n_columns, const int matrix[n_rows][n_columns]);
void print_matrix(int n_rows, int n_columns, const int matrix[n_rows][n_columns]);
void add(int n_rows, int n_columns, const int matrix_1[n_rows][n_columns], const int matrix_2[n_rows][n_columns], int result[n_rows][n_columns]);
void sub(int n_rows, int n_columns, const int matrix_1[n_rows][n_columns], const int matrix_2[n_rows][n_columns], int result[n_rows][n_columns]);

int main(void) {
int n_rows,n_columns;
int matrix_1[10][10],matrix_2[10][10],result[10][10];
char op;


printf("Enter Sizes: ");
scanf("%d %d ",&n_rows,&n_columns);

printf(" Enter Matrix 1:");
scan_matrix(n_rows,n_columns,matrix_1);

printf(" Enter Matrix 2:");
scan_matrix(n_rows,n_columns,matrix_2);

printf(" Enter Operation: ");
scanf(" %c",&op);

if(op == '+')
{
add(n_rows,n_columns,matrix_1,matrix_2,result);
printf(" ");
print_matrix(n_rows,n_columns,result);
}
else if(op == '-')
{
sub(n_rows,n_columns,matrix_1,matrix_2,result);
printf(" ");
print_matrix(n_rows,n_columns,result);
}
else
exit(0);

return 0;
}
void scan_matrix(int n_rows, int n_columns, const int matrix[n_rows][n_columns])
{
int i,j;
for(i=0;i<n_rows;i++)
{
  for(j=0;j<n_columns;j++)
  {
   scanf("%d ",&matrix[i][j]);
  }
}
}
void print_matrix(int n_rows, int n_columns, const int matrix[n_rows][n_columns])
{
int i,j;
for(i=0;i<n_rows;i++)
{
  for(j=0;j<n_columns;j++)
  {
   printf("%d ",matrix[i][j]);
  }
  printf(" ");
}
}
void add(int n_rows, int n_columns, const int matrix_1[n_rows][n_columns], const int matrix_2[n_rows][n_columns], int result[n_rows][n_columns])
{
int i,j;
for(i=0;i<n_rows;i++)
{
  for(j=0;j<n_columns;j++)
  {
   result[i][j] = matrix_1[i][j] + matrix_2[i][j];
  }
  
}
}
void sub(int n_rows, int n_columns, const int matrix_1[n_rows][n_columns], const int matrix_2[n_rows][n_columns], int result[n_rows][n_columns])
{
int i,j;
for(i=0;i<n_rows;i++)
{
  for(j=0;j<n_columns;j++)
  {
   result[i][j] = matrix_1[i][j] - matrix_2[i][j];
  }
  
}
}

Output:

Enter Sizes: 3 3
Enter Matrix 1:

2 4 6
8 9 10
6 7 8

Enter Matrix 2:

1 2 3
2 3 4
5 6 7

Enter Operation: +
3 6 9
10 12 14
11 13 15

Do ask if any doubt. Please upvote.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote