Tək uzunluğu "X" formatında çap edin


SimBaxılıb 313

Tək uzunluqlu bir simli nəzərə alaraq, simli aşağıda göstərildiyi kimi X formatında çap edəcək bir funksiya yazın

misal

INPUT
s = "abcde"

ÇIXDI

a e
b d
c
b d
a e

Alqoritm

1. I artan və j azalan yerlərdə i və j olan iki dəyişkənliklə ipi keçin

2. Üst hissəni, yəni (i
   a. Boşluqları çap edin
b. xarakterlə çap et
c. Ji-1 boşluqları çap edin
d. J-ci xarakteri çap edin

3. Orta nöqtəni çap edin, yəni (i == j)
a. Boşluqları çap edin
b. Orta xarakteri çap edin

4. Aşağı hissəni çap edin, yəni (i> j)
a. J boşluqları çap edin
b. xarakterlə çap et
c. Ji-1 boşluqları çap edin
d. J-ci xarakteri çap edin

C ++ Proqramı

#include<iostream>
using namespace std;
 
// Function to print given string in cross pattern
// Length of string must be odd
void printXFormat(string s)
{
    int len = s.length();
 
    // i varaible from start to end, j from end to start
    for (int i=0,j=len-1; i<=len,j>=0; i++,j--)
    {
        //Printing upper part, ie till middle element
        if (i<j)
        {
            // Print i spaces
            for (int x=0; x<i; x++)
                cout << " ";
 
            // Print i'th character
            cout << s[i];
 
            // Print j-i-1 spaces
            for (int x=0; x<j-i-1; x++)
                cout << " ";
 
            // Print j'th character
            cout << s[j] << endl;
        }
 
        // To print center point
        if (i==j)
        {
            // Print i spaces
            for (int x=0; x<i; x++)
                cout << " ";
 
            // Print middle character
            cout << s[i] << endl;
        }
 
        // To print lower part
        else if (i>j)
        {
            // Print j spances
            for (int x = j-1; x>=0; x--)
                cout << " ";
 
            // Print j'th character
            cout << s[j];
 
            // Print i-j-1 spaces
            for (int x=0; x<i-j-1; x++)
                cout << " ";
 
            // Print i'h character
            cout << s[i] << endl;
        }
    }
}
 

int main()
{
    printXFormat("abcde");
    return 0;
}

Yoxla

 

Şərh yaz

Translate »