/*
* 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