একটি স্ট্রিং স্ট্র দেওয়া, আমাদের ম্যাট্রিক্সে ‘+’ প্যাটার্নে প্রদত্ত স্ট্রিং স্ট্র প্রিন্ট করতে হবে। একটি ম্যাট্রিক্সে প্লাস প্যাটার্ন গঠন করতে ম্যাট্রিক্সটি অবশ্যই একটি বর্গ ম্যাট্রিক্স হতে হবে। একটি বর্গাকার ম্যাট্রিক্স হল সেই ম্যাট্রিক্স যাতে একই সংখ্যক সারি এবং কলাম থাকে।
যেমন আমাদের একটি স্ট্রিং "টিউটর" আছে আমাদের কাজ হল স্ট্রিংটিকে কেন্দ্র থেকে অনুভূমিকভাবে এবং উল্লম্বভাবে একে অপরকে ছেদ করে প্রিন্ট করা এবং ম্যাট্রিক্সের বাকি উপাদানগুলিকে প্রদত্ত চিত্রের মতো "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; }
আউটপুট
উপরের কোডটি চালালে এটি নিম্নলিখিত আউটপুট −
উৎপন্ন করবে