Code:
# include <stdio.h> //This is a function to provide the spacing for the triangle void spaces(void) { printf(" "); } //This is a function to calculate the factorial of n int factorial(int n) { int x; int y=1; for(x=1; x<=n; x++) { y=y*x; } return y; } //This function calculates ncr - the number in each place of the triangle //It uses the previous factorial function to do so int choose(int n, int r) { int x; x=(factorial(n))/((factorial(n))*(factorial(n-r))); return x; } //This function calculates ncr - the number in each place of the triangle //It uses the previous factorial function to do so int choose(int n, int r) { int x; x=(factorial(n))/((factorial(n))*(factorial(n-r))); return x; } //This function prints the triangle //It uses the spaces and choose functions to do so void triangle(int n) { int row; int col; int x; int y=n-1; //This statement decides where to put spaces and numbers depending on the input and using the choose function for(row=1; row<=n; row++) { for(col=0; col<row; col++) { if(col==0) { for(x=y; x>0; x--) { printf(" "); } y--; } } printf("%d", choose(row - 1, col)); //This statement chooses how much space to print depending on the number of digits in the surrounding numbers if(((choose(row-1, col)/10)!=0)&&(choose(row-1, col)/100==0)) { printf(" "); } else if(((choose(row-1, col)/10)!=0)&&(choose(row-1, col)/100!=0)) { printf(" "); } else { spaces (); } } printf("\n"); } //This is the main function of the program //It asks and scans for the number of rows in the program int main (void) { printf("What is the number of rows in Pascal's triangle? "); int rows; scanf("%d", &rows); //This ensures the program is repeated while rows is greater than or equal to 0 while (rows>=0) { //This statement makes the triangle function run when rows is greater than 0 if(rows!=0) { triangle (rows); } printf("What is the number of rows in Pascal's triangle? "); scanf("%d", &rows); } return 0; }