C语言求圆周率PI

各位好
我想用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了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-11
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都为整型,所以/为取整处理
第2个回答  2009-04-11
int k=0;
int i;
int sum;
int n=100000

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

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网