Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Ma trận thưa (Sparse Matrix) trong C


Ma trận thưa: phần lớn phần tử là 0. Điều kiện: số lượng 0 > (hàng * cột) / 2.

Ví dụ ma trận 3x3

1 1 0
0 0 2
0 0 0

Có 6 số 0 / 9 phần tử > 4.5 → là ma trận thưa.

Chương trình kiểm tra

#include <stdio.h>
#include <stdlib.h>
int main() {
    int a[10][10], row, col, i, j, count = 0;
    printf("Nhap so hang: "); scanf("%d", &row);
    printf("Nhap so cot: "); scanf("%d", &col);
    printf("Nhap ma tran:\n");
    for (i=0; i (row * col) / 2)
        printf("La ma tran thua (sparse matrix)\n");
    else
        printf("Khong phai ma tran thua\n");
    return 0;
}

Kết quả

Run 1: 3x2, [[1,0],[2,0],[2,0]] -> 3 zero, 3*2/2=3 -> Khong phai (can >3)
Run 2: 3x2, [[1,0],[0,0],[0,0]] -> 5 zero > 3 -> La ma tran thua