C语言计算圆周率

Python014

C语言计算圆周率,第1张

计算溢出了。你的 fact 和 multi 都使用整数保存计算结果,参数稍大一点就超出整数表示范围了,于是溢出变成负数。

你把这两个函数改成 double 类型,内部变量 res 也声明成 double,就能算出正确结果了。

#include <stdio.h>

#include <math.h>

int main(){

double pi=0,result

int i=1

int s=-1

do{

s*=-1

result=1.0/i*s

i+=2

pi+=result

}while(fabs(result)>0.000001)

printf("pi=%10.4lf\n",pi*4)

return 0

}