1 Attachment(s)
Program not giving any error/return value/output, help please!
Hello,
This program that is supposed to find pi, and it should approximate pi to some number of terms. This number is an input from user. However, for some reason, when I run it and enter 10 as my input, it doesn't do anything. No error, no return. Here is a screenshot of what I am stuck at.
Attachment 11998
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long double approx1 (int terms);
long double approx2 (int terms);
int main ()
{
long double pi, first, second;
int terms;
char ch;
printf ("\nEnter the number of terms to approximate pi, or 0 to terminate: ");
scanf ("%d", &terms);
while (terms != 0)
{
if (terms == 1)
{
pi = 4;
printf ("\nFirst approximation of pi to 1 term is %.8Lf\n\n", pi);
pi = sqrt(12);
printf ("Second approximation of pi to 1 term is %.8Lf\n\n", pi);
}
else if (terms > 1 )
{
first = approx1 (terms);
printf ("\nFirst approximation of pi to %d term is %.8Lf\n\n", terms, first);
second = approx2 (terms);
printf ("Second approximation of pi to %d term is %.8Lf\n\n", terms, second);
terms = 0;
}
else
{
printf ("\nWrong input, please try again\n\n");
}
printf ("Enter the number of terms to approximate pi, or 0 to terminate: ");
scanf ("%d", &terms);
}
printf ("\n\n***** Program Terminated *****\n");
return 0;
}
long double approx1 (int terms)
{
int i;
long double pi=0,denom=1.0,num=4.0;
for ( i =1; i = (terms+1); i++)
{
if ((i % 2) != 0)
{
pi = pi + (num / denom);
}
else
{
pi = pi - (num / denom);
}
denom = denom + 2.0;
}
return pi;
}
long double approx2 (int terms)
{
int i;
long double pi=0.0,denom = 1.0,num=12.0;
for ( i =1; i = (terms+1); i++)
{
if ((i % 2) != 0)
{
pi = pi + (num / denom);
}
else
{
pi = pi - (num / denom);
}
denom = (denom + 1.0)*(denom +1.0);
}
pi = sqrt(pi);
return pi;
}