A matrix is considered sparse when it has more zero values than non-zero values (and dense when it has more non-zero values).
In this post, let's write a C program to find out whether the specified matrix is sparse.
C Program to Check Whether a Matrix Is Sparse or Not
Let's create a file named sparsematrix.c and add the following source code to it.
#include <stdio.h> #define max 100 /*A sparse martix is matrix which has more zero elements than nonzero elements */ void main () { static int arr[max][max]; int i,j,r,c; int ctr=0; printf("How many rows and columns are in this matrix ? "); scanf("%d %d", &r, &c); printf("Enter elements in the matrix :\n"); for(i=0;i<r;i++) { for(j=0;j<c;j++) { scanf("%d",&arr[i][j]); if (arr[i][j]==0) ++ctr; } } if (ctr>((r*c)/2)) printf ("The given matrix is a sparse matrix. \n"); else printf ("The given matrix is not a sparse matrix.\n"); printf ("There are %d number of zeros in the matrix.\n\n",ctr); }
To compile and run the above C program, you can use C Programs Compiler Online tool.
Output:
How many rows and columns are in this matrix? 4 4 Enter the elements in the matrix : 0 1 0 0 5 0 0 9 0 0 3 0 2 0 4 0 The given matrix is a sparse matrix. There are 10 zeros in the matrix.
Okay. Let's run the program again to see the output when the count of non-zero values is higher:
How many rows and columns are in this matrix? 4 4 Enter the elements in the matrix: 1 0 3 4 0 0 2 9 8 6 5 1 0 7 0 4 The given matrix is not a sparse matrix. There are 5 zeros in the matrix.
We've successfully identified a sparse and a non-sparse matrix.
Comments
Post a Comment