C语言检查矩阵是否为稀疏矩阵
在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;
本文将使用C语言来检查矩阵是否为稀疏矩阵;如果矩阵中的0数超过(n*m)/2,则矩阵为稀疏矩阵,其中的n为矩阵的维数。
示例代码:
#include <stdio.h>
void main ()
{
int matrix[10][10];
int i, j, m, n;
int sparse_counter = 0;
printf("Enter the order of the matix \n");
scanf("%d %d", &m, &n);
printf("Enter the elements of the matix \n");
for (i = 0; i < m; ++i)
{
for (j = 0; j < n; ++j)
{
scanf("%d", &matrix[i][j]);
if (matrix[i][j] == 0)
{
++sparse_counter;
}
}
}
if (sparse_counter > ((m * n) / 2))
{
printf("The given matrix is Sparse Matrix !!! \n");
}
else
printf("The given matrix is not a Sparse Matrix \n");
printf("There are %d number of Zeros.", sparse_counter);
}
程序运行效果如下:
Enter the order of the matix 3 3 Enter the elements of the matix 1 2 3 0 0 0 4 0 0 The given matrix is Sparse Matrix !!! There are 5 number of Zeros.