# Program to print Pascal Triangle in C

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 ``````