How to write a program to print Pascal Triangle in C language with an example? The Pascal is a triangle with an array of binomial coefficients.

## C Program to print Pascal Triangle

This pascal triangle in the C program allows the user to enter the maximum number of rows he/she wants to print. We are going to print the pascal triangle of integers until it reaches the user-specified rows.

#include <stdio.h> long Factorial(int); int main() { int i, Number, j; printf("\n Please Enter the Number of rows you wish to see \n"); scanf("%d", &Number); for (i = 0; i < Number; i++) { for (j = 0; j <= (Number - i - 2); j++) { printf(" "); } for (j = 0; j <= i; j++) { printf("%ld ", Factorial(i) / (Factorial(j) * Factorial(i-j))); } printf("\n"); } return 0; } long Factorial(int Number) { int i; long Fact = 1; for (i = 1; i <= Number; i++) Fact = Fact * i; return Fact; }

Within this pascal triangle in c example, the long Factorial(int Number) function declaration will find the factorial of the given number. Please refer C Program to Find Factorial of a Number to understand the steps involved in the first function.

The following C Programming printf and scanf statements will allow the User to enter the range or maximum Number of rows he/she wants to print as a pascal triangle.

Now let us see the Nested for loop in the iteration wise.

Outer Loop – First Iteration

From the above Pascal triangle screenshot, you can observe that the value of i is 0, the Number is 3, and the condition (i < 3) is True. So, it will enter into the second for loop.

First Inner Loop – First Iteration

The j value is 0 and the condition (j <= (3 – 0 – 2) is True. So, it will start executing the statements inside the loop. The printf(” “) statement will print Empty space as Output

The following j++ statement will increment the Value of j by 1 using the Increment Operator

Pascal Triangle in C program First Inner Loop – Second Iteration

The j value will be 1, and the condition (1 <= (3 – 0 – 2)) is True so that the following statement will print Empty space as Output

First Inner Loop – Third Iteration

The j value will be two, and the condition (2 <= (3 – 0 – 2)) is False. So, it will exit from the for loop.

Next, it will enter into the second For Loop

for (j = 0; j <= i; j++) // Second Inner Loop { printf("%ld ", Factorial(i) / (Factorial(j) * Factorial(i-j))); }

Second Inner Loop – First Iteration

We haven’t finished the first iteration of the Outer for loop, so i value is still 0.

The j value is 0 and the condition (j <= 0) is True. So, it will start executing the statements inside the loop. The following statement will find the factorials of i and j and prints the output

printf("%ld ", Factorial(i) / (Factorial(j) * Factorial(i-j)));

factorial(i) / (Factorial(j) * Factorial(i – j) )

It means, factorial(0) / (Factorial(0) * Factorial(0) ) —> Factorial of 0 = 1

= 1 / (1 * 1) = 1

The j++ statement will increment the value of j by 1 using the Increment Operator.

Second Inner Loop – Second Iteration

The j value will be 1, and the condition (1 <= 0) is False. So, it will exit from the for loop. The following printf(“\n”) statement is to terminate the current line.

Final Output after the First Iteration = [Empty Space] [Empty Space] 1

Pascal triangle in C program Outer Loop – Second Iteration

The value of i will be 1, and the condition (1 < 3) is True. So, it will enter into the second for loop

First Inner Loop – First Iteration

The value of j is 0 and the condition (0 <= 0) is True. So, empty space will print as output. Next, the j value will also be incremented by 1.

First Inner Loop – Second Iteration

The value of j is 1, and the condition (1 <= 0) is False. So, it will exit from the for loop. Now, it will enter into the second For Loop.

Second Inner Loop – First Iteration

We haven’t finished the second iteration of the Outer for loop, so i value is still 1.

The j value is 0 and the condition (0 <= 1) is True. So, it will start finding the factorials of i and j and prints the output

factorial(i) / (Factorial(j) * Factorial(i – j) )

It means, factorial(1) / (Factorial(0) * Factorial(1) ) —> Factorial of 0 = 1

= 1 / (1 * 1) = 1

Second Inner Loop – Second Iteration

The j value will be 1, and the condition (1 <= 1) is True So, it will start finding the factorials of i and j and print the output

factorial(1) / (Factorial(1) * Factorial(0) ) —> Factorial of 0 = 1

= 1 / (1 * 1) = 1

Second Inner Loop – Third Iteration

The j value will be 2, and the condition (2 <= 1) is False so that it will exit from the for loop. Final Output after the Second Iteration = [Empty Space] 1 1

Pascal triangle in C Outer Loop – Third Iteration

The value of i will be 2, and the condition (2 < 3) is True. So it will enter into the second For Loop.

Second Inner Loop – First Iteration

We haven’t finished the third iteration of the Outer for loop, so i value is still 2.

The j value is 0 and the condition (0 <= 2) is True. So, it will start finding the factorials of i and j and print the output

factorial(2) / (Factorial(0) * Factorial(2) ) —> Factorial of 0 = 1

= 2 / (1 * 2) = 1

Second Inner Loop – Second Iteration

The j value will be 1, and the condition (1 <= 2) is True.

factorial(2) / (Factorial(1) * Factorial(1) ) —> Factorial of 2 = 2

= 2 / (1 * 1) = 2

Second Inner Loop of the program – Third Iteration

j = 2, and the condition (2 <= 2) is True.

factorial(2) / (Factorial(2) * Factorial(0) )

= 2 / (2 * 1) = 1

Second Inner Loop – Fourth Iteration

j = 3, and the condition (3 <= 2) is False. So, it will exit from the for loop. The final output after the Third Iteration = 1 2 1

Outer Loop – Fourth Iteration

The value of i will be 3, and the condition (3 < 3) is False. So it will exit from the for loop.

Final Output is:

[Empty Space] [Empty Space] 1

= [Empty Space] 1 1

1 2 1

## C Program to print Pascal Triangle using recursion

This program allows the user to enter the number of rows he/she want to print as a Pascal triangle. In this example, we will use the code snippet we used in our first example. However, this time we are using the recursive function to find factorial.

#include <stdio.h> long Factorial(int Number) { if (Number == 0 || Number == 1) return 1; else return Number * Factorial (Number -1); } int main() { int i, Number, j, Fact; printf("\n Please Enter Number of rows you want to see \n"); scanf("%d", &Number); for (i = 0; i < Number; i++) { for (j = 0; j <= (Number - i - 2); j++) { printf(" "); } for (j = 0; j <= i; j++) { Fact = Factorial(i) / (Factorial(j) * Factorial(i-j)); printf("%ld ", Fact); } printf("\n"); } return 0; }

```
Please Enter Number of rows you want to see
9
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
```

Comments are closed.