Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम: स्पार्स मैट्रिक्स जांच

स्पार्स मैट्रिक्स क्या है?

एक मैट्रिक्स जिसमें अधिकांश एलिमेंट्स शून्य हों, स्पार्स मैट्रिक्स कहलाता है।

उदाहरण (3x3)

1 0 0
0 2 0
0 0 0

कुल 9 एलिमेंट्स में 6 शून्य हैं (> 9/2 = 4.5), इसलिए स्पार्स है।

एल्गोरिदम

  1. रोज और कॉलम इनपुट लें।
  2. मैट्रिक्स एलिमेंट्स पढ़ें।
  3. शून्य एलिमेंट्स गिनें।
  4. यदि count > (rows * cols) / 2 तो स्पार्स, अन्यथा नहीं।

C प्रोग्राम

#include <stdio.h>
#include <stdlib.h>

int main() {
    int row, col, i, j, a[10][10], count = 0;
    printf("Enter rows: "); scanf("%d", &row);
    printf("Enter columns: "); scanf("%d", &col);
    printf("Enter matrix elements:\n");
    for(i = 0; i < row; i++)
        for(j = 0; j < col; j++)
            scanf("%d", &a[i][j]);
    printf("Matrix:\n");
    for(i = 0; i < row; i++) {
        for(j = 0; j < col; j++)
            printf("%d\t", a[i][j]);
        printf("\n");
    }
    // शून्य गिनें
    for(i = 0; i < row; i++)
        for(j = 0; j < col; j++)
            if(a[i][j] == 0)
                count++;
    if(count > (row * col) / 2)
        printf("Matrix is a sparse matrix\n");
    else
        printf("Matrix is not a sparse matrix\n");
    return 0;
}

आउटपुट

Run 1:
Enter rows: 3, Columns: 2
Elements: 1 0 2 0 2 0
Matrix:
1   0
2   0
2   0
Zeros: 3, Total: 6, Threshold: 3
Matrix is not a sparse matrix (3 > 3 is false)

Run 2:
Enter rows: 3, Columns: 2
Elements: 1 0 0 0 0 0
Zeros: 5, Total: 6, Threshold: 3
Matrix is a sparse matrix

स्पार्स मैट्रिक्स प्रतिनिधित्व

मेमोरी बचाने के लिए केवल नॉन-जीरो एलिमेंट्स स्टोर करें:

  • ट्रिपलेट फॉर्मेट: (row, col, value) की सूची
  • कम्प्रेस्ड रो (CSR): वैल्यूज, कॉलम इंडेक्स, रो पॉइंटर्स ऐरे
  • कम्प्रेस्ड कॉलम (CSC)

ट्रिपलेट उदाहरण

Matrix:           Triplet (row, col, val):
1 0 0             (0,0,1)
0 2 0      →      (1,1,2)
0 0 3             (2,2,3)
  1. C प्रोग्राम: षट्कोणीय पैटर्न प्रिंट करना C प्रोग्राम: षट्कोणीय पैटर्न प्रिंट करना

    षट्कोणीय पैटर्न दिए गए पूर्णांक n के लिए, हम तारक (*) का उपयोग करके एक षट्कोणीय पैटर्न प्रिंट करते हैं। पैटर्न तीन भागों में विभाजित होता है: ऊपरी भाग - त्रिकोणीय शीर्ष मध्य भाग - समानांतर भुजाएं निचला भाग - त्रिकोणीय तल उदाहरण इनपुट: n = 5 * * * * * * * * * * * *

  1. C प्रोग्राम: समानांतर चतुर्भुज की परिधि ज्ञात करना C प्रोग्राम: समानांतर चतुर्भुज की परिधि ज्ञात करना

    समानांतर चतुर्भुज (Parallelogram) क्या है? एक समानांतर चतुर्भुज एक चतुर्भुज है जिसके: विपरीत भुजाएं समानांतर होती हैं विपरीत कोण समान होते हैं विकर्ण एक-दूसरे को द्विभाजित करते हैं परिधि/परिमाप सूत्र यदि भुजाएं a और b हैं, तो: परिधि = 2(a + b) = 2a + 2b उदाहरण भुजा aभुजा bपरिधि 231270.00 16.

  1. C में क्रिसमस ट्री प्रोग्राम C में क्रिसमस ट्री प्रोग्राम

    यहां हम एक दिलचस्प समस्या देखेंगे। इस समस्या में हम देखेंगे कि कैसे क्रिसमस ट्री को यादृच्छिक रूप से प्रिंट किया जाए। तो ट्री क्रिसमस ट्री लाइट्स की तरह झिलमिलाएगा। क्रिसमस ट्री प्रिंट करने के लिए, हम विभिन्न आकारों के पिरामिड को एक के नीचे एक प्रिंट करेंगे। सजावटी पत्तियों के लिए दिए गए कैरेक्टर्स