Skip to main content

Search This Blog

matrix multiplication in c using functions and pointers

 #include <stdio.h> #define ROWS 3 #define COLS 3 void matrixMultiply(int *mat1, int *mat2, int *result, int rows1, int cols1, int cols2) {     int i, j, k;     // Multiplying matrices     for (i = 0; i < rows1; i++) {         for (j = 0; j < cols2; j++) {             *(result + i * cols2 + j) = 0;             for (k = 0; k < cols1; k++) {                 *(result + i * cols2 + j) += *(mat1 + i * cols1 + k) * *(mat2 + k * cols2 + j);             }         }     } } void displayMatrix(int *mat, int rows, int cols) {     int i, j;     // Displaying matrix     for (i = 0; i < rows; i++) {         for (j = 0; j < cols; j++) {             printf("%d\t", *(mat + i * cols + j)); ...

matrix multiplication in c using functions and pointers

 #include <stdio.h>


#define ROWS 3

#define COLS 3


void matrixMultiply(int *mat1, int *mat2, int *result, int rows1, int cols1, int cols2) {

    int i, j, k;


    // Multiplying matrices

    for (i = 0; i < rows1; i++) {

        for (j = 0; j < cols2; j++) {

            *(result + i * cols2 + j) = 0;

            for (k = 0; k < cols1; k++) {

                *(result + i * cols2 + j) += *(mat1 + i * cols1 + k) * *(mat2 + k * cols2 + j);

            }

        }

    }

}


void displayMatrix(int *mat, int rows, int cols) {

    int i, j;


    // Displaying matrix

    for (i = 0; i < rows; i++) {

        for (j = 0; j < cols; j++) {

            printf("%d\t", *(mat + i * cols + j));

        }

        printf("\n");

    }

}


int main() {

    int mat1[ROWS][COLS] = {{1, 2, 3},

                            {4, 5, 6},

                            {7, 8, 9}};

    int mat2[ROWS][COLS] = {{9, 8, 7},

                            {6, 5, 4},

                            {3, 2, 1}};

    int result[ROWS][COLS];


    // Multiplying matrices

    matrixMultiply((int *)mat1, (int *)mat2, (int *)result, ROWS, COLS, COLS);


    // Displaying matrices

    printf("Matrix 1:\n");

    displayMatrix((int *)mat1, ROWS, COLS);

    printf("\nMatrix 2:\n");

    displayMatrix((int *)mat2, ROWS, COLS);

    printf("\nResultant Matrix:\n");

    displayMatrix((int *)result, ROWS, COLS);


    return 0;

}

  1. Matrix Multiplication Function (matrixMultiply): This function takes pointers to the two matrices (mat1 and mat2) to be multiplied and a pointer to the result matrix (result). Additionally, it takes the dimensions of the matrices (rows1, cols1, and cols2). Inside the function, the matrices are accessed using pointer arithmetic, and matrix multiplication is performed similarly to the previous example.

  2. Display Matrix Function (displayMatrix): This function takes a pointer to a matrix (mat), along with its dimensions (rows and cols). It uses pointer arithmetic to access the elements of the matrix and prints them row by row.

  3. Main Function (main): In the main function, two matrices (mat1 and mat2) are initialized with sample values. Then, the matrixMultiply function is called to compute the product of these matrices, and the result is stored in the result matrix. Finally, the contents of all three matrices are displayed using the displayMatrix function.

This code demonstrates how to multiply two matrices in C using functions and pointers for passing matrices to functions.

Comments

Contact Form

Name

Email *

Message *