when i used larger numbers of rows for pascal triangle, junk appears.
i think the compiler cannot hold the big values in my constructPascal function.

/* Title: Using Binomial Coefficients */
/* Purpose: Program ask user to enter the number of rows for the */
/* Pascal Triangle. Program then generate the Pascal Triangle required*/
/* using binomial coeffients method. */
/**********************************************************************/
#include <stdio.h>
//declaring function prototype//
void constructPascal(int numRows);
int binomialCoefficent(int n, int k);
int factorial(int n);
//main function//
int main(void)
{
//declare variable//
int numRows;
//user input//
printf("Enter the number of rows of the Pascal Triangle: ");
scanf("%i", &numRows);
//call for constructPascal function//
constructPascal(numRows);
system("PAUSE");
//exit program//
return 0;
}
//defines constructPascal function//
void constructPascal(int numRows)
{
//declare variables///
int k,n;
//generate each row//
for(n=0;(n+1)<=numRows;n++)
{
//generate each column//
for(k=0;k<=n;k++)
//print out the colummn//
printf("%i ", binomialCoefficient(n,k));
//prints a newline every row//
printf("\n");
}
}
//defines binomialCoefficient function//
int binomialCoefficient(int n, int k)
{
//return the value of each element using n and k.//
//factorial function is used here//
return (factorial(n))/((factorial(k))*(factorial(n-k)));
}
//defines factorial function//
//n!//
int factorial(int n)
{
//declare variable//
int z = 1;
while (n>1)
{
z = z*n;
n--;
}
//return the value//
return z;
}

>> return (factorial(n))/((factorial(k))*(factorial(n-k)));
That is due to the way you calculate the values. 13! alreadt overflows a 32bit integer.
But your second post indicates that you already

i'm now trying to change my binomialCoefficient function so that the top term gets divided by the bottom term as the terms gets bigger. but i can't seem to put it in language.

//defines binomialCoefficient function//
int binomialCoefficient(int n, int k)
{
int top=1, bottom1=1;
while(n>1)
{
top = top*(n);
bottom1 = bottom1*k;
if(!(top%bottom1))
top = top/bottom1;
n--;
k--;
}
return top;
}

That is due to the way you calculate the values. 13! alreadt overflows a 32bit integer.
But your second post indicates that you already realized that :)

>> so that the top term gets divided by the bottom term as the terms gets bigger. but i can't seem to put it in language.

You can write a loop. n! / k! is the same as n * (n - 1) * (n - 2) * ... * (k + 1). So, you multiply the terms n through (k + 1) in a loop. That will already get you further down the Pascal triangle.

There are of course alternative ways of calculating the values in the triangle. Each value is the sum of the two values above it.

/**********************************************************************/
/* Matric Number: U083773L */
/* Userid: u0803773 */
/* Lab: COM1/B11 */
/* Lab Group Number: 19 */
/* Lab TA's Name: Lin Cai Quan */
/* Lab Session Date: 29 Oct 2008 */
/* Lab Session Time: 1100 - 1200 */
/* Title: Using Array */
/* Purpose: Program ask user to enter the number of rows for the */
/* Pascal Triangle. Program then generate the Pascal Triangle required*/
/* using arrays to store values. */
/**********************************************************************/
#include <stdio.h>
//declaring function prototype//
void constructPascal(int numRows);
//main function//
int main(void)
{
//declare variable//
int numRows;
//user input//
printf("Enter the number of rows of the Pascal Triangle: ");
scanf("%i", &numRows);
//call for constructPascal function//
constructPascal(numRows);
system("PAUSE");
//exit program//
return 0;
}
//defines constructPascal function//
void constructPascal(int numRows)
{
//declare variables///
int k,n[23]={1},hold=0,hold2,count;
//generate each row//
for(count=0;(count+1)<=numRows;count++)
{
hold =0;
for(k=0;k<=count;k++)
{
hold2 = hold + n[k];
printf("%i ", hold + n[k]);
hold = n[k];
n[k]= hold2;
}
//prints a newline every row//
printf("\n");
}
}

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Having just graduated from college and entered the workforce, I don’t find myself always using the tools and programs I grew accustomed to over the past four years. However, there is one program I continually find myself reverting back to…R.
So …

If you haven’t already, I encourage you to read the first article (http://www.experts-exchange.com/articles/18680/An-Introduction-to-R-Programming-and-R-Studio.html) in my series to gain a basic foundation of R and R Studio. You will also find the …

The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.