Patterns in C: Triangles, Pyramids, and Pascal’s Triangle
Introduction
In this blog post, we’ll explore various patterns in C programming, including printing triangles using asterisks and digits, inverted triangles, full pyramids, Pascal’s triangle, and Floyd’s triangle. We’ll provide C code examples for each pattern, along with outputs and detailed explanations of the algorithms.
1. Printing Triangles Using *
Algorithm
- Take an input for the number of rows
n
. - Use nested loops to iterate over rows and columns.
- In the inner loop, print asterisks (
*
) based on the current row and column.
C Code Example
#include <stdio.h>
void printAsteriskTriangle(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
printf("* ");
}
printf("\n");
}
}
int main() {
int rows;
// Input: Get the number of rows from the user
printf("Enter the number of rows for the asterisk triangle: ");
scanf("%d", &rows);
// Print asterisk triangle
printAsteriskTriangle(rows);
return 0;
}
Output Example
Input: 5
Enter the number of rows for the asterisk triangle: 5
*
* *
* * *
* * * *
* * * * *
2. Printing Inverted Triangles Using *
Algorithm
- Take an input for the number of rows
n
. - Use nested loops to iterate over rows and columns.
- In the inner loop, print asterisks (
*
) based on the current row and column.
C Code Example
#include <stdio.h>
void printInvertedAsteriskTriangle(int n) {
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
printf("* ");
}
printf("\n");
}
}
int main() {
int rows;
// Input: Get the number of rows from the user
printf("Enter the number of rows for the inverted asterisk triangle: ");
scanf("%d", &rows);
// Print inverted asterisk triangle
printInvertedAsteriskTriangle(rows);
return 0;
}
Output Example
Input: 4
Enter the number of rows for the inverted asterisk triangle: 4
* * * *
* * *
* *
*
3. Printing Full Pyramids
Algorithm
- Take an input for the number of rows
n
. - Use nested loops to iterate over rows and columns.
- In the inner loop, print spaces and asterisks based on the current row and column.
C Code Example
#include <stdio.h>
void printFullPyramid(int n) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("* ");
}
printf("\n");
}
}
int main() {
int rows;
// Input: Get the number of rows from the user
printf("Enter the number of rows for the full pyramid: ");
scanf("%d", &rows);
// Print full pyramid
printFullPyramid(rows);
return 0;
}
Output Example
Input: 3
Enter the number of rows for the full pyramid: 3
*
* * *
* * * * *
4. Printing Pascal’s Triangle
Algorithm
- Take an input for the number of rows
n
. - Use nested loops to iterate over rows and columns.
- Calculate and print the binomial coefficient for each position.
C Code Example
#include <stdio.h>
// Function to calculate factorial
int factorial(int num) {
if (num == 0 || num == 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
// Function to calculate binomial coefficient
int binomialCoefficient(int n, int r) {
return factorial(n) / (factorial(r) * factorial(n - r));
}
void printPascalsTriangle(int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", binomialCoefficient(i, j));
}
printf("\n");
}
}
int main() {
int rows;
// Input: Get the number of rows from the user
printf("Enter the number of rows for Pascal's triangle: ");
scanf("%d", &rows);
// Print Pascal's triangle
printPascalsTriangle(rows);
return 0;
}
Output Example
Input: 5
Enter the number of rows for Pascal's triangle: 5
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
5. Printing Floyd’s Triangle
Algorithm
- Take an input for the number of rows
n
. - Use a counter variable to print numbers in ascending order.
C Code Example
#include <stdio.h>
void printFloydsTriangle(int n) {
int counter = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
printf("%d ", counter);
counter++;
}
printf("\n");
}
}
int main() {
int rows;
// Input: Get the number of rows from the user
printf("Enter the number of rows for Floyd's triangle: ");
scanf("%d", &rows);
// Print Floyd's triangle
printFloydsTriangle(rows);
return 0;
}
Output Example
Input: 4
Enter the number of rows for Floyd's triangle: 4
1
2 3
4 5 6
7 8 9 10
Conclusion
In this blog post, we explored various patterns in C programming, including triangles using asterisks, inverted triangles, full pyramids, Pascal’s triangle, and Floyd’s triangle. Each section provided a detailed explanation of the algorithm, C code examples, and output demonstrations.
Understanding these patterns is crucial for developing programming logic and enhancing problem-solving skills. Feel free to use the provided C code as a reference or incorporate it into your projects. Experiment with different inputs to observe how the patterns change based on the number of rows.
Happy coding!