Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để triển khai ma trận thưa thớt

Ma trận thưa thớt là ma trận trong đó phần lớn các phần tử là 0. Ví dụ cho điều này được đưa ra như sau.

Ma trận cho dưới đây chứa 5 số 0. Vì số lượng các số 0 nhiều hơn một nửa số phần tử của ma trận nên nó là một ma trận thưa thớt.

5 0 0
3 0 1
0 0 9

Một chương trình để triển khai một ma trận thưa thớt như sau.

Ví dụ

#include<iostream>
using namespace std;
int main () {
   int a[10][10] = { {0, 0, 9} , {5, 0, 8} , {7, 0, 0} };
   int i, j, count = 0;
   int row = 3, col = 3;
   for (i = 0; i < row; ++i) {
      for (j = 0; j < col; ++j){
         if (a[i][j] == 0)
         count++;
      }
   }
   cout<<"The matrix is:"<<endl;
   for (i = 0; i < row; ++i) {
      for (j = 0; j < col; ++j) {
         cout<<a[i][j]<<" ";
      }
      cout<<endl;
   }
   cout<<"The number of zeros in the matrix are "<< count <<endl;
   if (count > ((row * col)/ 2))
   cout<<"This is a sparse matrix"<<endl;
   else
   cout<<"This is not a sparse matrix"<<endl;
   return 0;
}

Đầu ra

The matrix is:
0 0 9
5 0 8
7 0 0
The number of zeros in the matrix are 5
This is a sparse matrix

Trong chương trình trên, một vòng lặp for lồng nhau được sử dụng để đếm số lượng các số không trong ma trận. Điều này được chứng minh bằng cách sử dụng đoạn mã sau.

for (i = 0; i < row; ++i) {
   for (j = 0; j < col; ++j) {
      if (a[i][j] == 0)
      count++;
   }
}

Sau khi tìm thấy số lượng các số không, ma trận được hiển thị bằng cách sử dụng vòng lặp for lồng nhau. Điều này được hiển thị bên dưới.

cout<<"The matrix is:"<<endl;
for (i = 0; i < row; ++i) {
   for (j = 0; j < col; ++j) {
      cout<<a[i][j]<<" ";
   }
   cout<<endl;
}

Cuối cùng, số lượng các số 0 được hiển thị. Nếu số lượng các số không nhiều hơn một nửa các phần tử trong ma trận, thì ma trận được hiển thị là ma trận thưa nếu không thì ma trận không phải là ma trận thưa.

cout<<"The number of zeros in the matrix are "<< count <<endl;
if (count > ((row * col)/ 2))
cout<<"This is a sparse matrix"<<endl;
else
cout<<"This is not a sparse matrix"<<endl;