Thursday, 30 July 2015

Alphabet Pattern 1

/*
 * C Program to print following pattern
 *
 *      A B C D E D C B A
 *        A B C D C B A
 *          A B C B A
 *            A B A
 *              A
 *
 */

// Include
#include <stdio.h>

// Declarations
/*
 * printPattern
 * Description : Function to print pattern provided in description.
 * Parameters  : int - number of lines to be printed for given pattern.
 * Return      : void
 */
void printPattern(int i_numberOfLines);

// Definitions
int main()
{
    int i_numberOfLines = 0;
    printf("How many lines would you like to print : ");
    scanf("%d",&i_numberOfLines);
    printPattern(i_numberOfLines);
    return 0;
}

void printPattern(int i_numberOfLines)
{
    register int row, spaces, letters, noOfLetters;
    // Loop to repeat for each row
    for (row = 1; row <= i_numberOfLines; row++)
    {
        // Loop for printing spaces
        // Observe that spaces are incremental on each line.
        // row 1=0, row 2 = 1, row 3 =2 and so on.
        // So essentially number of spaces on each row is 1 less that current row.
        for (spaces = 1; spaces < row; spaces++)
        {
            printf("  ");
        }
        
        // Loop for printing incremental letters A B C D E
        // Observe that number of incremental letters are less on each row.
        // row 1 = 5, row 2 = 4, row 3 = 3 and so on.
        // So number of incremental letters on row n = Total lines - current row + 1
        noOfLetters = i_numberOfLines - row + 1;
        for (letters = 0; letters < noOfLetters; letters++)
        {
            printf("%c ", 'A'+letters);
        }
        
        // Loop for printing decremental letters D C B A
        // Observer that number of decremental letters are less on each row.
        // row 1 = 4, row 2 = 3, row 3  = 2 and so on
        // So number of decremental letters on row n = Total lines - current row.
        noOfLetters = i_numberOfLines - row;
        for (letters = noOfLetters; letters>0; letters--)
        {
            printf("%c ",'A'+letters -1);
        }
        
        // Move on to next line
        printf("\n");
    }

}

No comments:

Post a Comment