Computer Science, asked by neerajaspradeep, 9 months ago

Write a C program to perform matrix omultiplication using functions?

Answers

Answered by nicholfsfa
0

Matrix Multiplication in C can be done in two ways: without using functions and by passing matrices into functions. In this post, we’ll discuss the source code for both these methods with sample outputs for each.

The source codes of these two programs for Matrix Multiplication in C programming are to be compiled in Code::Blocks. Running them on Turbo C and other platforms might require a few modifications to the code.

Matrix Multiplication in C without using function:

Matrix Multiplication in C without using functionC

//Source Code for Matrix Multiplication in C without using function

#include <stdio.h>

int main()

{

   int m, n, p, q, c, d, k, sum = 0;

   int first[10][10], second[10][10], multiply[10][10];

   printf("\nEnter the number of rows and columns of first matrix:\n");

   scanf("%d%d", &m, &n);

   /*//Entering elements of first matrix

   printf("\nEnter the elements of first matrix\n");

   for (  c = 0 ; c < m ; c++ )

       for ( d = 0 ; d < n ; d++ )

           scanf("%d", &first[c][d]);*/

   printf("\nEnter the number of rows and columns of second matrix:\n");

   scanf("%d%d", &p, &q);

   //Checking if Matrix Multiplication is possible

   if ( n != p )

   {

       printf("\nMatrices with entered orders can't be multiplied with each other.\n");

       printf("\nThe column of first matrix should be equal to row of second.\n");

   }

   else

   {

       //Entering elements of first matrix

       printf("\nEnter the elements of first matrix:\n");

       for (  c = 0 ; c < m ; c++ )

           for ( d = 0 ; d < n ; d++ )

               scanf("%d", &first[c][d]);

       //Entering elements of second matrix

       printf("\nEnter the elements of second matrix:\n");

       for ( c = 0 ; c < p ; c++ )

           for ( d = 0 ; d < q ; d++ )

               scanf("%d", &second[c][d]);

       //Carrying out matrix multiplication operation

       for ( c = 0 ; c < m ; c++ )

       {

           for ( d = 0 ; d < q ; d++ )

           {

               for ( k = 0 ; k < p ; k++ )

               {

                   sum = sum + first[c][k]*second[k][d];

               }

               multiply[c][d] = sum;

               sum = 0;

           }

       }

       //Printing the final product matrix

       printf("\nThe product of entered matrices is:\n");

       for ( c = 0 ; c < m ; c++ )

       {

           for ( d = 0 ; d < q ; d++ )

               printf("%d\t", multiply[c][d]);

           printf("\n");

       }

   }

   return 0;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

//Source Code for Matrix Multiplication in C without using function

 

#include <stdio.h>

 

int main()

{

   int m, n, p, q, c, d, k, sum = 0;

   int first[10][10], second[10][10], multiply[10][10];

 

   printf("\nEnter the number of rows and columns of first matrix:\n");

   scanf("%d%d", &m, &n);

 

   /*//Entering elements of first matrix

   printf("\nEnter the elements of first matrix\n");

   for (  c = 0 ; c < m ; c++ )

       for ( d = 0 ; d < n ; d++ )

           scanf("%d", &first[c][d]);*/

 

   printf("\nEnter the number of rows and columns of second matrix:\n");

   scanf("%d%d", &p, &q);

 

   //Checking if Matrix Multiplication is possible

   if ( n != p )

   {

       printf("\nMatrices with entered orders can't be multiplied with each other.\n");

       printf("\nThe column of first matrix should be equal to row of second.\n");

   }

   else

   {

       //Entering elements of first matrix

       printf("\nEnter the elements of first matrix:\n");

       for (  c = 0 ; c < m ; c++ )

           for ( d = 0 ; d < n ; d++ )

               scanf("%d", &first[c][d]);

 

       //Entering elements of second matrix

       printf("\nEnter the elements of second matrix:\n");

       for ( c = 0 ; c < p ; c++ )

           for ( d = 0 ; d < q ; d++ )

               scanf("%d", &second[c][d]);

 

       //Carrying out matrix multiplication operation

       for ( c = 0 ; c < m ; c++ )

       {

           for ( d = 0 ; d < q ; d++ )

           {

               for ( k = 0 ; k < p ; k++ )

               {

                   sum = sum + first[c][k]*second[k][d];

               }

 

               multiply[c][d] = sum;

               sum = 0;

           }

       }

 

       //Printing the final product matrix

       printf("\nThe product of entered matrices is:\n");

       for ( c = 0 ; c < m ; c++ )

       {

           for ( d = 0 ; d < q ; d++ )

               printf("%d\t", multiply[c][d]);

 

           printf("\n");

       }

   }

 

   return 0;

}

Similar questions