用两个函数求圆周率近似值的c语言程序怎么写?
时间: 2024-12-25 08:24:16 浏览: 42
在C语言中,可以使用蒙特卡洛方法来估算圆周率π的近似值。这种方法涉及在一个正方形和内切圆形中随机投掷点并计算两者内的点数比例。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SQUARE_SIZE 1000 // 正方形边长
#define NUM_POINTS 100000 // 投掷点的数量
double circle_area(double radius) {
return M_PI * radius * radius; // 圆形面积
}
double square_area(double side) {
return side * side; // 正方形面积
}
double estimate_pi() {
srand(time(0)); // 设置随机种子
int inside_circle = 0;
for (int i = 0; i < NUM_POINTS; ++i) {
double x = (rand() % SQUARE_SIZE) / (double) SQUARE_SIZE;
double y = (rand() % SQUARE_SIZE) / (double) SQUARE_SIZE;
if (x*x + y*y <= 1.0) { // 点是否落在单位圆内
inside_circle++;
}
}
double pi_estimate = 4.0 * (inside_circle / (double) NUM_POINTS);
return pi_estimate;
}
int main() {
printf("Estimated value of π: %.6f\n", estimate_pi());
return 0;
}
```
这个程序首先定义了计算圆面积和正方形面积的辅助函数,然后在`estimate_pi()`函数中通过随机生成点并检查其是否在单位圆内来估算π。最后,在主函数中打印出π的估计值。
阅读全文
相关推荐


















