mirror of
https://hub.njuu.cf/TheAlgorithms/C-Plus-Plus.git
synced 2023-10-11 13:05:55 +08:00
49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
|
/** @file
|
||
|
* A sparse matrix is a matrix which has number of zeroes greater than
|
||
|
* \f$\frac{m\times n}{2}\f$, where m and n are the dimensions of the matrix.
|
||
|
*/
|
||
|
|
||
|
#include <iostream>
|
||
|
|
||
|
/** main function */
|
||
|
int main() {
|
||
|
int m, n;
|
||
|
int counterZeros = 0;
|
||
|
|
||
|
std::cout << "Enter dimensions of matrix (seperated with space): ";
|
||
|
std::cin >> m;
|
||
|
std::cin >> n;
|
||
|
|
||
|
int **a = new int *[m];
|
||
|
for (int i = 0; i < m; i++) a[i] = new int[n];
|
||
|
|
||
|
std::cout << "Enter matrix elements:";
|
||
|
std::cout << "\n";
|
||
|
|
||
|
// reads the matrix from stdin
|
||
|
for (int i = 0; i < m; i++) {
|
||
|
for (int j = 0; j < n; j++) {
|
||
|
std::cout << "element? ";
|
||
|
std::cin >> a[i][j];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// counts the zero's
|
||
|
for (int i = 0; i < m; i++) {
|
||
|
for (int j = 0; j < n; j++) {
|
||
|
if (a[i][j] == 0)
|
||
|
counterZeros++; // Counting number of zeroes
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// makes sure the matrix is a sparse matrix
|
||
|
if (counterZeros > ((m * n) / 2)) // Checking for sparse matrix
|
||
|
std::cout << "Sparse matrix";
|
||
|
else
|
||
|
std::cout << "Not a sparse matrix";
|
||
|
|
||
|
for (int i = 0; i < m; i++) delete[] a[i];
|
||
|
delete[] a;
|
||
|
return 0;
|
||
|
}
|