c语言程序中计算圆的面积,C代码:使用概率的方法计算圆的面积

0818b9ca8b590ca3270a3433284dd417.png

#include

#include

#include

/*计算圆的面积*/

//函数功能:产生[0,1]里的随机小数

double randomnumber()

{

double d=((double)rand())/RAND_MAX;

return d;

}

//函数功能:给定一个圆半径,计算圆的面积

double circleArea(double r) //圆的半径为r,圆的外接正方形的边长为2r,圆的面积仅由半径r决定

{

double x,y; //随机产生的点的横坐标与纵坐标

int times=0; //计算点落在圆里的次数

int i = 0; //for循环的计数器

int cycle = 10000000; //for循环的执行次数,该次数越大,计算结果越接近真实值。

double area = 0;//圆的面积

for(i=0;i<=cycle;i++) //循环执行10000000次,通过使用大量的循环次数来提高精度。

{

x=randomnumber()*r;//点的横坐标=[0,1]里的一个随机小数×半径

y=randomnumber()*r;//点的纵坐标=[0,1]里的一个随机小数×半径

if(x*x+y*y<=r*r) //如果点落在圆的内部,即x^2+y^2<=r^2,times自加

times++;

}

area=(float)times*(4*r*r)/cycle;//面积=((点落在圆里的次数)/循环次数)×圆的外接正方形的面积

return area; //返回圆的面积

}

int main()

{

/*

初始化随机函数种子,srand((unsigned)time(NULL));

是拿系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。

使用时,参数可以是unsigned型的任意数据,比如srand(10);如果不使用srand,

而用rand()产生的随机数,在多次运行,结果是一样的。

*/

srand((unsigned)time(NULL));

printf("圆的面积=%.1f\n",circleArea(10000));

int i =0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值