शुरुआती C/C++ अभ्यास

मैट्रिक्स ट्रांसपोज़ करें

मैट्रिक्स की पंक्तियाँ और कॉलम आपस में बदलें।

मैट्रिक्स ट्रांसपोज़ करें क्या है?

ट्रांसपोज़ पंक्ति i, कॉलम j के मान को पंक्ति j, कॉलम i में ले जाता है।

महत्वपूर्ण बातें

  • Compiler warnings चालू करके सभी ठीक करें।
  • हर value का type और lifetime समझें।
  • Input और array bounds validate करें।

देखें यह कैसे काम करता है

पंक्तियाँ और कॉलम बदलने के लिए transpose दबाएँ। किसी खाने पर पॉइंटर ले जाकर उसकी नई जगह और मेमोरी ऑफ़सेट देखें।

C और C++ code examples

C
कोड चलाएँ →
main.c
#include <stdio.h>
int main(void) {
    int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}};
    // Visit columns first to print the transposed shape.
    for (int column = 0; column < 3; ++column) { for (int row = 0; row < 2; ++row) printf("%s%d", row ? " " : "", matrix[row][column]); puts(""); }
}
अपेक्षित output
1 4
2 5
3 6
C++
कोड चलाएँ →
main.cpp
#include <array>
#include <iostream>
int main() {
    std::array<std::array<int, 3>, 2> matrix{{{{1, 2, 3}}, {{4, 5, 6}}}};
    // Visit columns first to print the transposed shape.
    for (size_t column = 0; column < 3; ++column) { for (size_t row = 0; row < 2; ++row) std::cout << (row ? " " : "") << matrix[row][column]; std::cout << '\n'; }
}
अपेक्षित output
1 4
2 5
3 6

C और C++ की तुलना

नेस्टेड लूप हर निर्देशांक पर जाते हैं और मूल मैट्रिक्स के कॉलम को पंक्तियों के रूप में प्रिंट करते हैं।

C

C छोटे procedural APIs और representation details स्पष्ट करता है।

C++

C++ low-level model रखकर safer library types जोड़ता है।

अभ्यास

दोनों versions चलाकर बदलें और language guarantees की तुलना करें।

  • Invalid और boundary inputs जोड़ें।
  • -Wall -Wextra -Wpedantic से compile करें।
  • Declarations और implementation अलग करें।

चैलेंज से अभ्यास करें

इस पाठ में सीखी बात से एक असली समस्या हल करें। हर चैलेंज ब्राउज़र में चलता है, तुरंत टेस्ट और AI रिव्यू के साथ।

सभी चैलेंज