C Program to find the trace and normal of a matrix

February 2, 2022, Learn eTutorial

For a better understanding, we always recommend you to learn the basic topics of C programming listed below:

In this c program, we need to calculate the trace and normal of a matrix. A matrix is a collection of elements of the same data type, which we arrange in a 2d format. A matrix is also called an array of arrays.

How to calculate the trace of a matrix?

Trace is the Sum of all elements of the Main diagonal of a Matrix. For example, The Trace of Matrix A :

2 5
1 is 3.

How to calculate the normal of a matrix?

The normal of a matrix is the square root of the Sum of squares of the elements of Matrix. For example, The Normal of Matrix B:

2 10
8  5
is 5. That is the Square root of 25.

So here in this c program, what we are doing is to initialize the variables and import the header files. Then accept a matrix using a nested for loop and calculate the square of each element. Now add the product to a sum variable. Find out the normal by calculating the square root of the sum.

For finding a trace of that matrix, we initiate a for loop where we add the elements of the main diagonal of the matrix. Then we display the normal and the trace of the matrix using the printf function. 


STEP 1: Include the Header files to use the built-in functions in the C program.

STEP 2: Include the Header file math.h.

STEP 3: Declare the variable i, j, m, n, sum, sum1, a, normal and set sum=0, sum1=0, a=0.

STEP 4: Read the order of the Matrix into the variables m and n.

STEP 5: Read the coefficients of the matrix into the array ma[i][j] and calculate a=ma[i][j]*ma[i][j] ,sum1=sum1+a using nested for loop.

STEP 6: Calculate Normal=sqrt(sum1).

STEP 7: Display the normal of the given Matrix is normal.

STEP 8: By using the for loop with the condition i

STEP 9: Display the Trace of the Matrix as a sum.

C Source Code

                                          #include <stdio.h>
#include <math.h>

void main() {
  static int ma[10][10];
  int i, j, m, n, sum = 0, sum1 = 0, a = 0, normal;
  printf("Enter the order of the matrix\n");
  scanf("%d %d", & m, & n);
  printf("Enter the no coefficients of the matrix \n");
  for (i = 0; i < m; ++i) {
    for (j = 0; j < n; ++j) {
      scanf("%d", & ma[i][j]);
      a = ma[i][j] * ma[i][j];
      sum1 = sum1 + a;
  normal = sqrt(sum1);
  printf("The normal of the given matrix is = %d\n", normal);
  for (i = 0; i < m; ++i) {
    sum = sum + ma[i][i];
  printf("Trace of the matrix is = %d\n", sum);
} /*End of main() */


Enter the order of the matrix

Enter the n coefficients of the matrix
1 2 3
4 5 6
7 8 9

The normal of the given matrix is = 16
Trace of the matrix is = 15

Run 2

Enter the order of the matrix

Enter the n coefficients of the matrix
2 4
6 8

The normal of the given matrix is = 10

Trace of the matrix                       = 10