In this article, we will show how to write a C program to print the Alphabet Q pattern or shape of stars using for loop, while loop, and functions.
#include <stdio.h>
int main()
{
int rows;
printf("Enter Rows = ");
scanf("%d", &rows);
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < rows; j++)
{
if ((i == 0 || i == rows - 2) && (0 < j < rows - 1))
{
printf("*");
}
else if ((j == 0 || j == rows - 1) && (i > 0 && (i < rows - 2)))
{
printf("*");
}
else if ((rows / 2 < i < rows) && (j == i && (j > rows / 2)))
{
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
Enter Rows = 15
**********
* *
* *
* *
* *
* *
* *
* *
* * *
* * *
* * *
* * *
* * *
**********
*
Instead of a for loop, this Alphabet Q Pattern of stars program uses a while loop to iterate the rows and columns. For more star programs, click here.
#include <stdio.h>
int main()
{
int i, j, rows;
printf("Enter Rows = ");
scanf("%d", &rows);
i = 0;
while ( i < rows)
{
j = 0;
while ( j < rows)
{
if ((i == 0 || i == rows - 2) && (0 < j < rows - 1))
{
printf("*");
}
else if ((j == 0 || j == rows - 1) && (i > 0 && (i < rows - 2)))
{
printf("*");
}
else if ((rows / 2 < i < rows) && (j == i && (j > rows / 2)))
{
printf("*");
}
else {
printf(" ");
}
j++;
}
printf("\n");
i++;
}
return 0;
}
Enter Rows = 17
***********
* *
* *
* *
* *
* *
* *
* *
* *
* * *
* * *
* * *
* * *
* * *
* * *
***********
*
In this C program, we create an alphabetQPat function that accepts those values and prints the Alphabet Q shape or Pattern of the given char.
#include <stdio.h>
void alphabetQPat(int rows, char a)
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < rows; j++)
{
if ((i == 0 || i == rows - 2) && (0 < j < rows - 1))
{
printf("%c", a);
}
else if ((j == 0 || j == rows - 1) && (0 < i && (i < rows - 2)))
{
printf("%c", a);
}
else if ((rows / 2 < i < rows) && (j == i && (rows / 2 < j)))
{
printf("%c", a);
}
else {
printf(" ");
}
}
printf("\n");
}
}
int main() {
int rows;
char a;
printf("Enter Alphabet = ");
scanf("%c", &a);
printf("Enter Rows = ");
scanf("%d", &rows);
alphabetQPat(rows, a);
return 0;
}