DEV Community

Sachin Ponnapalli
Sachin Ponnapalli

Posted on

Program to Print X Star Pattern in C, C++, and Python

Give the rows of the pattern the task is to print X star Pattern in C, C++, and Python.

Examples:

Example1:

Input:

Given number of rows =10

Output:

*                 * 
  *             *   
    *         *     
      *     *       
        * *         
        * *         
      *     *       
    *         *     
  *             *   
*                 *
Example2: Input:
Given number of rows =10
Given character to print='@'
Output:
Enter some random number of rows = 10
Enter some random character = @
@                 @ 
  @             @   
    @         @     
      @     @       
        @ @         
        @ @         
      @     @       
    @         @     
  @             @   
@                 @

Program to Print X Star Pattern in C, C++, and Python

Below are the ways to print the X Star Pattern in C, C++, and Python.

Method #1: Using For Loop (Star Character)

Approach:
  • Give the number of rows of the x pattern as static input and store it in a variable.
  • Loop from 0 to the number of rows using For loop.
  • Loop from 0 to the number of rows using another For loop(Inner For loop).
  • Check if the parent loop iterator value is equal to the inner loop iterator value or if the inner loop iterator value is equal to the number of rows-parent loop iterator value-1 using If conditional Statement.
  • Print the star character with space if the condition is true.
  • Else print space character.
  • Print the newline character after the end of the inner For loop.
  • The Exit of the program.
1) Python Implementation Below is the implementation:
# Give the number of rows of the x pattern as static input and store it in a variable.
xrows=10

#Loop from 0 to the number of rows using For loop.
for m in range(0, xrows):
    # Loop from 0 to the number of rows using another For loop(Inner For loop).
    for n in range(0, xrows):
        '''Check if the parent loop iterator value is equal to the inner loop 
        iterator value or if the inner loop iterator value is equal to the number
        of rows-parent loop iterator value-1 using If conditional Statement.'''
        if(m==n or n==xrows - 1 - m):
          #Print the star character with space if the condition is true.
          print('*',end=' ')
        else:
          #Else print space character.
          print(' ',end=' ')
     #Print the newline character after the end of the inner For loop.      
    print()

Output:

*                 * 
  *             *   
    *         *     
      *     *       
        * *         
        * *         
      *     *       
    *         *     
  *             *   
*                 *
  • Python Program to Print Plus Star Pattern
  •   2) C++ Implementation Below is the implementation:
    #include <iostream>
    using namespace std;
    
    int main()
    {
        // Give the number of rows of the x pattern as static
        // input and store it in a variable.
        int xrows = 10;
    
        // Loop from 0 to the number of rows using For loop.
        for (int m = 0; m < xrows; m++) {
            // Loop from 0 to the number of rows using another
            // For loop(Inner For loop).
            for (int n = 0; n < xrows; n++) {
                /*Check if the parent loop iterator value is
                equal to the inner loop iterator value or if the
                inner loop iterator value is equal to the
                number of rows-parent loop iterator value-1
                using If conditional Statement.*/
                if (n == m or n == (xrows - m - 1)) {
                    // Print the star character with space if
                    // the condition is true.
                    cout << "* ";
                }
                else {
                    // Else print space character.
                    cout << "  ";
                }
            }
            // Print the newline character after the end of
            // the inner For loop.
            cout << endl;
        }
    
        return 0;
    }
    Output:
    *                 * 
      *             *   
        *         *     
          *     *       
            * *         
            * *         
          *     *       
        *         *     
      *             *   
    *                 *
    3) C Implementation Below is the implementation:
    #include <stdio.h>
    
    int main()
    {
      // Give the number of rows of the x pattern as static
        // input and store it in a variable.
        int xrows = 10;
    
        // Loop from 0 to the number of rows using For loop.
        for (int m = 0; m < xrows; m++) {
            // Loop from 0 to the number of rows using another
            // For loop(Inner For loop).
            for (int n = 0; n < xrows; n++) {
                /*Check if the parent loop iterator value is
                equal to the inner loop iterator value or if the
                inner loop iterator value is equal to the
                number of rows-parent loop iterator value-1
                using If conditional Statement.*/
                if (n == m || n == (xrows - m - 1)) {
                    // Print the star character with space if
                    // the condition is true.
                    printf("* ");
                }
                else {
                    // Else print space character.
                    printf("  ");
                }
            }
            // Print the newline character after the end of
            // the inner For loop.
            printf("\n");
        }
    
        return 0;
    }
    Output:
    *                 * 
      *             *   
        *         *     
          *     *       
            * *         
            * *         
          *     *       
        *         *     
      *             *   
    *                 *

    Method #2: Using For Loop (User Character)

    Approach:
    • Give the number of rows of the x pattern as user input and store it in a variable.
    • Give the character to print as user input and store it in a variable.
    • Loop from 0 to the number of rows using For loop.
    • Loop from 0 to the number of rows using another For loop(Inner For loop).
    • Check if the parent loop iterator value is equal to the inner loop iterator value or if the inner loop iterator value is equal to the number of rows-parent loop iterator value-1 using If conditional Statement.
    • Print the given character with space if the condition is true.
    • Else print space character.
    • Print the newline character after the end of the inner For loop.
    • The Exit of the program.
    1) Python Implementation
    • Give the number of rows as user input using int(input()) and store it in a variable.
    • Give the Character as user input using input() and store it in another variable.
    Below is the implementation:
    # Give the number of rows  as user input using int(input()) and store it in a variable.
    xrows = int(input(
        'Enter some random number of rows  = '))
    # Give the Character as user input using input() and store it in another variable.
    givencharacter = input('Enter some random character = ')
    # Loop from 0 to the number of rows using For loop.
    for m in range(0, xrows):
        # Loop from 0 to the number of rows using another For loop(Inner For loop).
        for n in range(0, xrows):
            '''Check if the parent loop iterator value is equal to the inner loop 
            iterator value or if the inner loop iterator value is equal to the number
            of rows-parent loop iterator value-1 using If conditional Statement.'''
            if(m == n or n == xrows - 1 - m):
                # Print the given character with space if the condition is true.
                print(givencharacter, end=' ')
            else:
                # Else print space character.
                print(' ', end=' ')
           # Print the newline character after the end of the inner For loop.
        print()
    

    Output:

    Enter some random number of rows = 10
    Enter some random character = @
    @                 @ 
      @             @   
        @         @     
          @     @       
            @ @         
            @ @         
          @     @       
        @         @     
      @             @   
    @                 @

    2) C++ Implementation

    • Give the number of rows as user input using cin and store it in a variable.
    • Give the Character as user input using cin and store it in another variable.

    Below is the implementation:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        // Give the number of rows
        // as user input using cin and store it in a
        // variable.
        int xrows;
        char givencharacter;
        cout << "Enter some random number of rows = " << endl;
        cin >> xrows;
        // Give the Character as user input using cin and store
        // it in another variable.
        cout << "Enter some random character = " << endl;
        cin >> givencharacter;
        cout << endl;
        // Loop from 0 to the number of rows using For loop.
        for (int m = 0; m < xrows; m++) {
            // Loop from 0 to the number of rows using another
            // For loop(Inner For loop).
            for (int n = 0; n < xrows; n++) {
                /*Check if the parent loop iterator value is
                equal to the inner loop iterator value or if the
                inner loop iterator value is equal to the
                number of rows-parent loop iterator value-1
                using If conditional Statement.*/
                if (n == m || n == (xrows - m - 1)) {
                    // Print the given  character with space if
                    // the condition is true.
                    cout << givencharacter << " ";
                }
                else {
                    // Else print space character.
                    cout << "  ";
                }
            }
            // Print the newline character after the end of
            // the inner For loop.
            cout << endl;
        }
    
        return 0;
    }

    Output:

    Enter some random number of rows = 
    10
    Enter some random character = 
    @
    @                 @ 
      @             @   
        @         @     
          @     @       
            @ @         
            @ @         
          @     @       
        @         @     
      @             @   
    @                 @

    3) C Implementation

    • Give the number of rows as user input using scanf and store it in a variable.
    • Give the Character as user input using scanf and store it in another variable.

    Below is the implementation:

    #include <stdio.h>
    
    int main()
    {
    
        // Give the number of rows
        //  as user input using scanf and store it in a
        // variable.
        int xrows;
        char givencharacter;
        // Give the Character as user input using scanf and
        // store it in another variable.
        scanf("%d", &xrows);
        scanf("%c", &givencharacter);
        printf("\n");
    
        // Loop from 0 to the number of rows using For loop.
        for (int m = 0; m < xrows; m++) {
            // Loop from 0 to the number of rows using another
            // For loop(Inner For loop).
            for (int n = 0; n < xrows; n++) {
                /*Check if the parent loop iterator value is
                equal to the inner loop iterator value or if the
                inner loop iterator value is equal to the
                number of rows-parent loop iterator value-1
                using If conditional Statement.*/
                if (n == m || n == (xrows - m - 1)) {
                    // Print the given character with space if
                    // the condition is true.
                    printf("%c", givencharacter);
                }
                else {
                    // Else print space character.
                    printf("  ");
                }
            }
            // Print the newline character after the end of
            // the inner For loop.
            printf("\n");
        }
    
        return 0;
    }

    Output:

    10@
    @                 @ 
      @             @   
        @         @     
          @     @       
            @ @         
            @ @         
          @     @       
        @         @     
      @             @   
    @                 @

     

    Discussion (1)

    Collapse
    paddy3118 profile image
    Paddy3118 • Edited on
    • Comments explain code too closely.. Same info given twice!
    • Python multi-line string is a string and not a comment.

    That Python code seems lost in so much comments.