我需要做一个程序,把用户输入的迭代公式:PI=4(1/1 -(1/3)+(1/5).重复多次。到目前为止,我的问题是它没有准确地接受我的输入。
基本上,我的方法是尝试用分母中的x分离分子和分母,并尝试让它加上2,但我甚至还没有弄清楚- +旋转,因为我想确保我首先工作。
我的第一个问题是,它得到的是随机数,但后来我把变量类型改为float,解决了这个问题,但现在一切都是直0。
int pi_formula(float numerator,int x,int n)
{
numerator=1.0;
x=1;
float fraction= numerator/x;
float total;
printf("%lf",&fraction);
for (int i = 1; i <= n; i++) // loop goes for amount of user input times
do
{
fraction;
return(total);
x+= 2;
} while (1);
printf("Estimated PI is : %f",&total);
}
当我运行这段代码
printf("%lf",&fraction);
将返回0.000000。
我甚至不知道我是否正确地编写了循环,因为我似乎不能让我的输入被识别。
这里是原型和主要的参考。
int pi_formula(float numerator,int x,int n);
int main ()
{
// Problem 2
float numerator;
int x;
int n;
printf("ESTIMATE PI\n");
printf("Enter number of iterations:");
scanf("%i",&n);
pi_formula(numerator,x,n);
system("pause");
}
我曾尝试设置printf调用来检查输入,希望看到我输入的内容,但结果也是0。
1条答案
按热度按时间apeeds0o1#
对于初学者,此函数声明
没有意义,至少因为它的返回类型是
int
,而不是浮点类型和多余的参数。函数应该至少声明为
你的函数除了这个while循环之外什么都不返回,尽管它的返回类型不是
void
其中
total
具有类型float
,这也没有意义。还有其他错误。例如,在
printf
的调用中,你正在尝试输出一个指针作为一个浮点数。
可以通过以下方式定义该函数
在main中你可以写
下面是所有的代码组合在一起
程序输出为