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

C प्रोग्राम: मैट्रिक्स की पंक्ति और स्तंभ योग (Row/Column Sum)


समस्या

5×5 मैट्रिक्स के लिए रनटाइम पर इनपुट लेकर प्रत्येक पंक्ति (row) और स्तंभ (column) का योग निकालना।

एल्गोरिदम

  1. 5×5 मैट्रिक्स के तत्व इनपुट लें
  2. पंक्ति योग: प्रत्येक पंक्ति i के लिए, सभी j पर sum += A[i][j]
  3. स्तंभ योग: प्रत्येक स्तंभ j के लिए, सभी i पर sum += A[i][j]
  4. प्रत्येक योग प्रिंट करें

पूर्ण C प्रोग्राम (सुधारित)

#include <stdio.h>

#define SIZE 5

int main() {
    int A[SIZE][SIZE];
    int i, j;
    
    // इनपुट
    printf("%dx%d मैट्रिक्स के तत्व दर्ज करें:\n", SIZE, SIZE);
    for (i = 0; i < SIZE; i++) {
        for (j = 0; j < SIZE; j++) {
            printf("A[%d][%d]: ", i, j);
            scanf("%d", &A[i][j]);
        }
    }
    
    // पंक्ति योग
    printf("\n--- पंक्ति योग ---\n");
    for (i = 0; i < SIZE; i++) {
        int rowSum = 0;  // प्रत्येक पंक्ति के लिए रीसेट
        for (j = 0; j < SIZE; j++)
            rowSum += A[i][j];
        printf("पंक्ति %d: %d\n", i, rowSum);
    }
    
    // स्तंभ योग
    printf("\n--- स्तंभ योग ---\n");
    for (j = 0; j < SIZE; j++) {
        int colSum = 0;  // प्रत्येक स्तंभ के लिए रीसेट
        for (i = 0; i < SIZE; i++)
            colSum += A[i][j];
        printf("स्तंभ %d: %d\n", j, colSum);
    }
    
    // बोनस: विकर्ण योग
    int diag1 = 0, diag2 = 0;
    for (i = 0; i < SIZE; i++) {
        diag1 += A[i][i];
        diag2 += A[i][SIZE-1-i];
    }
    printf("\nमुख्य विकर्ण योग: %d\n", diag1);
    printf("द्वितीयक विकर्ण योग: %d\n", diag2);
    
    return 0;
}

आउटपुट उदाहरण

5x5 मैट्रिक्स के तत्व दर्ज करें:
A[0][0]: 1  A[0][1]: 2  A[0][2]: 3  A[0][3]: 4  A[0][4]: 5
A[1][0]: 6  A[1][1]: 7  A[1][2]: 8  A[1][3]: 9  A[1][4]: 10
A[2][0]: 11 A[2][1]: 12 A[2][2]: 13 A[2][3]: 14 A[2][4]: 15
A[3][0]: 16 A[3][1]: 17 A[3][2]: 18 A[3][3]: 19 A[3][4]: 20
A[4][0]: 21 A[4][1]: 22 A[4][2]: 23 A[4][3]: 24 A[4][4]: 25

--- पंक्ति योग ---
पंक्ति 0: 15
पंक्ति 1: 40
पंक्ति 2: 65
पंक्ति 3: 90
पंक्ति 4: 115

--- स्तंभ योग ---
स्तंभ 0: 55
स्तंभ 1: 60
स्तंभ 2: 65
स्तंभ 3: 70
स्तंभ 4: 75

मुख्य विकर्ण योग: 65
द्वितीयक विकर्ण योग: 65

मूल प्रोग्राम की बग्स (सुधार)

  • काउंटर रीसेट नहीं: row और column प्रत्येक पंक्ति/स्तंभ से पहले 0 नहीं किए गए थे → संचयी योग
  • गलत सूचकांक: स्तंभ प्रिंट में i उपयोग किया गया था j के बजाय
  • कोई मैक्रो/कॉन्स्ट नहीं: हार्डकोडेड 5
  • कोई इनपुट सत्यापन नहीं

सामान्यीकृत संस्करण (कोई भी आकार)


int main() {
    int rows, cols;
    printf("पंक्तियाँ स्तंभ: ");
    scanf("%d %d", &rows, &cols);
    
    int **A = malloc(rows * sizeof(int*));
    for (i = 0; i < rows; i++)
        A[i] = malloc(cols * sizeof(int));
    
    // ... इनपुट और योग समान लॉजिक ...
    
    // मुक्ति
    for (i = 0; i < rows; i++) free(A[i]);
    free(A);
}

आवेदन

  • छवि प्रसंस्करण: पंक्ति/स्तंभ योग से प्रोजेक्शन
  • डेटा विश्लेषण: सीमांत योग (marginal sums)
  • गेम: टिक-टैक-टो जीत जांच
  • रैखिक बीजगणित: मैट्रिक्स ऑपरेशन्स की नींव
  1. C में विषम वर्ग मैट्रिक्स की मध्य पंक्ति और स्तंभ का गुणनफल C में विषम वर्ग मैट्रिक्स की मध्य पंक्ति और स्तंभ का गुणनफल

    एक वर्ग मैट्रिक्स दी गई है, mat[row][column] जहां पंक्ति और स्तंभ समान हैं और विषम लंबाई के हैं अर्थात पंक्ति और स्तंभ की संख्या विषम होनी चाहिए, यानी 2 से विभाज्य नहीं, कार्य उस मैट्रिक्स की मध्य पंक्ति और मध्य स्तंभ का गुणनफल ढूंढना है। जैसे नीचे दी गई आकृति में: बाधाएं मैट्रिक्स वर्ग मैट्रिक्स

  1. - C प्रोग्राम में मैट्रिक्स गुणन और सामान्यीकरण (Normalization)

    मैट्रिक्स गुणन (Matrix Multiplication) अब मैट्रिक्स गुणन की प्रक्रिया पर चर्चा की गई है। मैट्रिक्स गुणन केवल तभी किया जा सकता है जब यह कुछ शर्तों को पूरा करता है। मान लीजिए दो मैट्रिक्स P और Q हैं, और उनके आयाम P (a x b) और Q (z x y) हैं, तो परिणाम मैट्रिक्स तभी पाया जा सकता है जब b = z। तब परिणाम

  1. C प्रोग्राम में 2-D मैट्रिक्स के कोने के तत्व और उनका योग प्रिंट करें C प्रोग्राम में 2-D मैट्रिक्स के कोने के तत्व और उनका योग प्रिंट करें

    समस्या विवरण आकार 2x2 का एक ऐरे दिया गया है और चुनौती ऐरे में संग्रहीत सभी कोने के तत्वों का योग प्रिंट करना है। उदाहरण इनपुट: मैट्रिक्स तत्व दर्ज करें: 10 2 10 2 3 4 10 4 10 आउटपुट: मैट्रिक्स का योग है: 40 एल्गोरिदम शुरुआत चरण 1: पंक्तियों और कॉलम के लिए मैक्रो बनाएं #define row 3 और #define col