एक स्ट्रिंग स्ट्र को देखते हुए, हमें मैट्रिक्स में दिए गए स्ट्रिंग स्ट्र को '+' पैटर्न में प्रिंट करना होगा। मैट्रिक्स में प्लस पैटर्न बनाने के लिए मैट्रिक्स एक वर्ग मैट्रिक्स होना चाहिए। एक वर्ग मैट्रिक्स वह मैट्रिक्स है जिसमें पंक्तियों और स्तंभों की संख्या समान होती है।
जैसे हमारे पास एक स्ट्रिंग "ट्यूटर" है, हमारा काम स्ट्रिंग को क्षैतिज और लंबवत रूप से केंद्र से एक-दूसरे को काटते हुए प्रिंट करना है, और मैट्रिक्स के बाकी तत्वों को दिए गए आंकड़े की तरह "x" के रूप में बनाना है -
इनपुट
str[] = {“Point”}
आउटपुट
इनपुट
str[] = {“this”}
आउटपुट
Pattern not possible
समस्या को हल करने के लिए नीचे उपयोग किया गया दृष्टिकोण इस प्रकार है
-
इनपुट प्राप्त करें।
-
जांचें कि क्या इनपुट एक समान लंबाई नहीं है।
-
प्रारंभ में पूरे मैट्रिक्स को "x" के साथ सेट करें
-
स्ट्रिंग को मध्य पंक्ति और मध्य कॉलम में सेट करें
-
परिणामी मैट्रिक्स प्रिंट करें।
एल्गोरिदम
Start In function int stringcross(char str[], int n) Step 1→ If n % 2 == 0 then, Step 2→ Printf "Pattern not possible” Step 3→ Else Declare a str2[max][max] Declare m and set as n / 2 For i = 0 and i < n and i++ For j = 0 and j < n and j++ Set str2[i][j] as 'x' For i = 0 and i < n and i++ Set str2[i][m] as str[i] For i = 0 and i < n and i++ Set str2[m][i] as str[i] For i = 0 and i < n and i++ For j = 0 and j < n and j++ Print str2[i][j] Print newline In Function int main() Step 1→ Declare and Initialize str[] as "TUTOR" Step 2→ Declare and Initialize n with the size of the string Step 3→ Call stringcross(str, n-1) Stop
उदाहरण
#include <stdio.h> #define max 100 int stringcross(char str[], int n){ if (n % 2 == 0){ //odd length string is only possible printf("Pattern not possible\n"); } else { //decalaring a 2-d character array char str2[max][max]; int m = n / 2; //Initially setting x for all elements for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { str2[i][j] = 'x'; } } //Placing the string in a manner //a cross is formed. for (int i = 0; i < n; i++){ //for middle columns str2[i][m] = str[i]; } for (int i = 0; i < n; i++){ //for middle row str2[m][i] = str[i]; } //printing for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%c ",str2[i][j]); } printf("\n"); } } return 0; } int main(){ char str[] = {"TUTOR"}; int n = sizeof(str)/sizeof(str[0]); stringcross(str, n-1); return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -