एक स्ट्रिंग स्ट्र को देखते हुए, हमारा काम इसके उल्टे पैटर्न को प्रिंट करना है। पैटर्न उल्टे क्रम में वृद्धिशील होगा, और जब स्ट्रिंग पूरी हो जाएगी तो शेष स्थानों में '*' भरें।
जैसे हम एक स्ट्रिंग “abcd” दर्ज करते हैं, अब पहली पंक्ति में हमें “a” प्रिंट करना होगा, फिर अगली पंक्ति में हमें “cb” प्रिंट करना होगा और फिर तीसरी पंक्ति में हम “**d” प्रिंट करेंगे।
उदाहरण
Input: str[] = { “abcd” } Output: a c b * * d
स्पष्टीकरण -
- पहली पंक्ति में 1 अक्षर प्रिंट करें
- दूसरी पंक्ति में 2 अक्षरों को उल्टे क्रम में प्रिंट करें
- तीसरी पंक्ति में 3 वर्णों को उल्टे क्रम में प्रिंट करें, यदि स्ट्रिंग 3 से कम है तो वर्णों को प्रिंट करें और रिक्त स्थान को * से भरें।
Input: str[] = {“tutorialspoint”} Output:
नीचे इस्तेमाल किया गया तरीका इस प्रकार है -
- हम i=0 से स्ट्रिंग को पार करेंगे और जाँच करेंगे कि i
- फिर हम एक वेरिएबल k लेंगे और k को ((i*(i+1))/2)-1
के रूप में सेट करेंगे- हम जाँच करेंगे यदि k>=n-1 तो, "*" प्रिंट करेंगे अन्यथा स्ट्रिंग के मान को उल्टे क्रम में प्रिंट करेंगे
एल्गोरिदम
Start In function int reverse_it(char str[], int n) Step 1-> Declare and Initialize i, j=0 , k=0 Step 2-> Loop For i=0 and i<n && k<(n-i)*2 and i++ Set k as ((i*(i+1))/2)-1 Loop For j=0 and j<i && k<(n-i)*2 and j++ If k >= n-1 then, Print "* " Else Print "%c ",str[k] Decrement k by 1 End loop Print new line End loop In Function int main(int argc, char const *argv[]) Step 1-> Declare and initialize string str[] Step 2-> Declare and Initialize size as sizeof(str)/sizeof(str[0]) Step 3-> Call function reverse_it(str, size); Stop
उदाहरण
#include <stdio.h> int reverse_it(char str[], int n) { int i, j=0 , k=0; for(i=0; i<n && k<(n-i)*2; i++) { //Assigning k k = ((i*(i+1))/2)-1; for(j=0; j<i && k<(n-i)*2; j++) { //will check if k is greater than the total number of characters //then we will print * for filling the extra characters if(k >= n-1) printf("* "); //print the string in reverse order else printf("%c ",str[k]); k--; } //for line break after reverse sequence printf("\n"); } return 0; } //Main Function int main(int argc, char const *argv[]) { char str[] = {"tutorialspoint"}; int size = sizeof(str)/sizeof(str[0]); reverse_it(str, size); return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -