C语言求圆周率PI

来源:百度知道 编辑:UC知道 时间:2024/06/04 19:18:29
各位好
我想用C语言求PI的值
方法是用半径为一四分之一圆以及
边长为一之正方形比例求取PI值
以下是我写的内容

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
int k=0;
int i;
int sum;
int n=100000;
float Pi;
for(i=1;i<=n;i++)
{
double x=ran3();
double y=ran3();
if(x*x+y*y<=1)
{
k++;
sum+=k;
}
}
Pi=(1/4)*(n-sum)/sum;
printf("Pi=%d\n",Pi);
}

其中ran3是一个可提供0~1随机数目的程式
然而我不晓得是哪里出了问题
输出的结果PI=0...
希望能获得各位的协助

C语言初学者提问
感谢各位的回覆:)
感谢各位的回覆

if(x*x+y*y<=1)
{
k=0;
k++;
sum+=k;
}
完成了
感谢各位的提示

阁下是台湾的同学??怎么把程序叫做程式
看不懂你的方法 估计可以吧 一般PI用这样的公式求
pi=1 - 1/2 + 1/4 - 1/6 + 1/8 - 1/10 + .....
还有楼下说的对 你的 Pi=(1/4)*(n-sum)/sum;
PI虽然是float型但是先进行整型运算再将 整型转换为float 所以就成0了

Pi=(1/4)*(n-sum)/sum;
改为:
Pi=(1.0/4)*(n-sum)/sum;
或者
Pi=(1/4.0)*(n-sum)/sum;
或者:
Pi=(1.0/4.0)*(n-sum)/sum;

1/4由于1,4都为整型,所以/为取整处理

int k=0;
int i;
int sum;
int n=100000

全改为:
float k=0;
float i;
float sum;
float n=100000;