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

C प्रोग्राम: रन टाइम पर आरंभ टू-डायमेंशनल सरणी

समस्या

रन-टाइम कंपाइलेशन का उपयोग करके सरणी में सभी एलिमेंट्स का योग और गुणनफल गणना करें।

समाधान

टू-डायमेंशनल सरणी का उपयोग उन स्थितियों में किया जाता है जहां मानों की तालिका संग्रहीत करनी हो (या मैट्रिक्स एप्लिकेशन्स में)।

सिंटैक्स

datatype array_name[row_size][column_size];

उदाहरण: int a[5][5];

सरणी में एलिमेंट्स की संख्या = row_size * column_size = 5*5 = 25

उदाहरण प्रोग्राम

दो 2D सरणियों के एलिमेंट-वाइज योग और गुणनफल गणना करने का C प्रोग्राम:

#include <stdio.h> 

void main() {
    // रन टाइम पर सरणी घोषित करना
    int A[2][3], B[2][3], i, j;
    int sum[2][3], product[2][3];
    
    // फोर लूप का उपयोग करके सरणी A और B में एलिमेंट्स पढ़ना
    printf("Enter elements into array A:\n");
    for(i = 0; i < 2; i++) {
        for(j = 0; j < 3; j++) {
            printf("A[%d][%d]: ", i, j);
            scanf("%d", &A[i][j]);
        }
        printf("\n");
    }
    
    for(i = 0; i < 2; i++) {
        for(j = 0; j < 3; j++) {
            printf("B[%d][%d]: ", i, j);
            scanf("%d", &B[i][j]);
        }
        printf("\n");
    }
    
    // योग गणना और आउटपुट प्रिंट करना
    printf("Sum array:\n");
    for(i = 0; i < 2; i++) {
        for(j = 0; j < 3; j++) {
            sum[i][j] = A[i][j] + B[i][j];
            printf("%d\t", sum[i][j]);
        }
        printf("\n");
    }
    
    // गुणनफल गणना और आउटपुट प्रिंट करना
    printf("Product array:\n");
    for(i = 0; i < 2; i++) {
        for(j = 0; j < 3; j++) {
            product[i][j] = A[i][j] * B[i][j];
            printf("%d\t", product[i][j]);
        }
        printf("\n");
    }
}

आउटपुट

Enter elements into array A:
A[0][0]: 12
A[0][1]: 23
A[0][2]: 3
A[1][0]: 25
A[1][1]: 34
A[1][2]: 1

B[0][0]: 3
B[0][1]: 46
B[0][2]: 23
B[1][0]: 1
B[1][1]: 24
B[1][2]: 32

Sum array:
15      69      26
26      58      33

Product array:
36      1058    69
25      816     32

व्याख्या

  • दो 2x3 सरणियाँ A और B रनटाइम पर भरी जाती हैं।
  • एलिमेंट-वाइज योग: sum[i][j] = A[i][j] + B[i][j]
  • एलिमेंट-वाइज गुणनफल: product[i][j] = A[i][j] * B[i][j]
  • यह मैट्रिक्स जोड़ और गुणन (हैडमर्ड प्रोडक्ट) है, मैट्रिक्स गुणन नहीं।

मैट्रिक्स गुणन (सही)

यदि वास्तविक मैट्रिक्स गुणन चाहिए (A × B जहां A: m×n, B: n×p):

// A: 2x3, B: 3x2 -> Result: 2x2
for(i = 0; i < 2; i++) {
    for(j = 0; j < 2; j++) {
        result[i][j] = 0;
        for(k = 0; k < 3; k++) {
            result[i][j] += A[i][k] * B[k][j];
        }
    }
}

मुख्य बिंदु

  • 2D सरणी इनपुट के लिए नेस्टेड लूप्स।
  • एलिमेंट-वाइज ऑपरेशन्स के लिए संगत आयाम आवश्यक।
  • मैट्रिक्स गुणन के लिए आंतरिक आयाम मेल खाना चाहिए (A के कॉलम = B के रो)।
  • बड़े मैट्रिक्स के लिए डायनामिक आवंटन और BLAS लाइब्रेरी उपयोग करें।
  1. C प्रोग्राम: सरणी के तत्वों का गुणनफल C प्रोग्राम: सरणी के तत्वों का गुणनफल

    समस्या विवरण एक सरणी arr[n] दी गई है, इसके सभी तत्वों का गुणनफल ज्ञात करें। उदाहरण सरणीगुणनफलगणना {10, 20, 3, 4, 8}1920010×20×3×4×8 {1, 2, 3, 4, 3, 2, 1}1441×2×3×4×3×2×1 {5, 0, 10}0शून्य से गुणनफल = 0 एल्गोरिदम result = 1 आरंभ करें प्रत्येक तत्व के लिए: result *= arr[i] result लौटाएं C प्

  1. C प्रोग्राम में O(n) समय और O(1) स्पेस में ऐरे का बायां रोटेशन प्रिंट करें C प्रोग्राम में O(n) समय और O(1) स्पेस में ऐरे का बायां रोटेशन प्रिंट करें

    समस्या विवरण हमें कुछ आकार n का एक ऐरे और कई पूर्णांक मान दिए गए हैं, हमें दिए गए इंडेक्स k से ऐरे को रोटेट करना होगा। उदाहरण इनपुट: arr[] = {1, 2, 3, 4, 5} K1 = 1, K2 = 3, K3 = 6 आउटपुट: 2 3 4 5 1 4 5 1 2 3 2 3 4 5 1 एल्गोरिदम शुरुआत चरण 1: void leftRotate(int arr[], int n, int k) फंक्शन घोषित क

  1. C प्रोग्राम में ऐरे रोटेशन के लिए प्रोग्राम C प्रोग्राम में ऐरे रोटेशन के लिए प्रोग्राम

    समस्या विवरण एक C प्रोग्राम लिखें जो ऐरे को n स्थिति से बाएं घुमाए। C प्रोग्रामिंग में ऐरे को n बार बाएं घुमाने का तरीका। C प्रोग्राम में ऐरे को n स्थिति से बाएं घुमाने का तर्क। उदाहरण इनपुट: arr[] = 1 2 3 4 5 6 7 8 9 10, N = 3 आउटपुट: 4 5 6 7 8 9 10 1 2 3 व्याख्या ऐरे में तत्व पढ़ें, मान लें ar