gpt4 book ai didi

c - C 中的 Pi 近似值 - 为什么我得到的近似值结果为 0?

转载 作者:太空狗 更新时间:2023-10-29 16:07:46 25 4
gpt4 key购买 nike

我正在尝试用 C 编写 pi 的准蒙特卡洛近似值。我还不太精通它,并且正在尝试翻译我基于 python 的技能,所以我可能只是忽略了一些东西。结果我一直得到 0,我不知道为什么。我应该如何解决这个问题?另外,我在最后两个 printf 调用中收到错误消息,说它们是类型 double * 而不是 double。无论如何它都能编译,这有关系吗?

#include <stdio.h>
/*
Tristen Wentling
montepithon.c
October 31, 2013

*/
int main(void)
{
float i,j,x;
float count=0,counter=0;
printf("Please enter the desired grid division size (n=?)");
scanf("%f", &x);
float y=x*x;
if(x==0){
printf("goodbye");
}
else if(x!=0){
for(i=0;i<=x;i++){
for(j=0;j<=x;j++){
float check=((i*i)*(1/y))+((j*j)*(1/y));
/*printf("%f\n", check);*/
if(check<=1){
count+=1;
}
else{
counter+=1;
}
}
}
}
else{
printf("error");
}
float prsum=count/y;
float ptsum=(1-counter)*(1/y);
double pirprox=4*prsum;
double pitprox=4*ptsum;
printf("%f\n", &pirprox);
printf("%f\n", &pitprox);
getchar();
}

最佳答案

printf 中的

%f 格式说明符需要 double 类型参数。 &pirprox&pitproxdouble * 类型,您不能使用 %f 打印地址。错误的格式说明符会调用未定义的行为
更改您的代码段

 printf("%f\n", &pirprox);

printf("%f\n", &pitprox);

 printf("%f\n", pirprox);

printf("%f\n", pitprox);

关于c - C 中的 Pi 近似值 - 为什么我得到的近似值结果为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19735534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com