C Program to Print Sum of Each Row and Column of given Matrix

In this tutorial, we will learn about how to create a program in C that will ask from user to enter any 3*3 matrix as input and print the sum of all elements present in each row and column along with its whole total. Here is the program:

#include<stdio.h>
#include<conio.h>
int main()
{
    int mat[3][3], i, j, rowtot, coltot, tot=0;
    printf("Enter 3*3 matrix elements: ");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            scanf("%d", &mat[i][j]);
        }
    }
    printf("\nThe Matrix is:\n");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            printf("%d\t",mat[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    for(i=0; i<3; i++)
    {
        rowtot=0;
        coltot=0;
        for(j=0; j<3; j++)
        {
            rowtot = rowtot + mat[i][j];
            coltot = coltot + mat[j][i];
            tot = tot + mat[i][j];
        }
        printf("\nRow %d Total = %d\t\t", i+1, rowtot);
        printf("Column %d Total = %d", i+1, coltot);
    }
    printf("\n\nWhole Total = %d", tot);
    getch();
    return 0;
}

The program was written under Code::Blocks IDE, therefore after successful build and run, here is the sample run. This is the first snapshot of the sample run:

c program row column total matrix

Supply any 3*3 matrix elements and press ENTER key to see the output. At output you will see the matrix, then row-wise row total and column-wise column total, then at last whole total of the matrix elements as shown in the second snapshot of the sample run:

row column whole total of matrix c

Here are some of the main steps used in above program:

  • Receive any 3*3 matrix elements, that is total 9 numbers as 3*3 or 9 elements for the matrix
  • Now display the matrix as output
  • To find row total and column total for each row and column of the given matrix, follow these steps:
    • Create a for loop starts from 0 to 3 as the matrix we have taken from user is 3*3
    • Inside the for loop, initialize 0 to any two variables say rowtot and coltot that will hold the row and column total
    • Create another for loop starts from 0 to 3 again
    • Inside this for loop, calculate the sum of row elements and column elements one by one
    • That is, if i holds 0 then inside the inner for loop
    • The inner loop variable say j holds 0 at first run
    • Therefore at first run, rowtot will hold rowtot + mat[i][j] or 0 + mat[0][0], that is 0 will be added to the very first element of the given matrix, and coltot will hold coltot + mat[j][i], that is 0 will be added to the very first element of the given matrix. The first element of any matrix is the first element of first row and first column
    • And at second run, rowtot will hold rowtot + mat[i][j] or mat[0][0] + mat[0][1]. As previously rowtot holds the value of first matrix element, therefore we have replaced rowtot with mat[0][0], that is mat[0][0] will be added to the second element of the given matrix, and coltot will hold mat[0][0] + mat[1][0], that is mat[0][0] will be added to the fourth element of the given matrix. Fourth element will be the second element for first column
    • Continue the same process until the last element of the given matrix
    • After coming out from the inner for loop or before continuing to the outer for loop, print the value of row total and column total
    • In this way, the program will print the sum of all 3-3 elements present in each row and column
  • Whole total will be calculated for all the 9 elements and print its value at last of the program, that is after exiting from both the for loop

Here is the modified version of the above program. The question is, write a program to read value in a matrix and print its value along with its Row Total, Column Total and whole Total. Here we have displayed the matrix along with mentioning its row number and column number.

#include<stdio.h>
#include<conio.h>
int main()
{
    int mat[3][3], i, j, rowtot, coltot, tot=0;
    printf("Enter 3*3 matrix elements: ");
    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            scanf("%d", &mat[i][j]);
        }
    }
    printf("\nThe Matrix is:\n");
    printf("\t\t[Column 1]\t[Column 2]\t[Column 3]\n\n");
    for(i=0; i<3; i++)
    {
        printf("[Row %d]\t\t", i+1);
        for(j=0; j<3; j++)
        {
            printf("%d\t\t",mat[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    for(i=0; i<3; i++)
    {
        rowtot=0;
        coltot=0;
        for(j=0; j<3; j++)
        {
            rowtot = rowtot + mat[i][j];
            coltot = coltot + mat[j][i];
            tot = tot + mat[i][j];
        }
        printf("\nRow %d Total = %d\t\t", i+1, rowtot);
        printf("Column %d Total = %d", i+1, coltot);
    }
    printf("\n\nWhole Total = %d", tot);
    getch();
    return 0;
}

Here is the final snapshot of the sample run of the above program:

print row total column total c

C Online Test


« Previous Program Next Program »

Follow/Like Us on Facebook




Subscribe Us on YouTube