|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
int main()
{
int n=1;
float e,pai=0;
scanf("%f",&e);
float k;
k=1/(2*n-1);
while(k>=e){
if(n%2==1){
pai+=4*k;
}
if(n%2==0){
pai-=4*k;
}
n++;
}
printf("%.6f",pai);
return 0;
}
找不到哪里错误
OK 改好了
- #include <stdio.h>
- int main(){
- int n = 1;
- double e, pi = 0, k; // 建议 double , 精度更高
- scanf("%lf", &e); // double 的格式是 %lf
- k = 1.0 / (2*n - 1); // 这里要写 1.0 , 不然它会变成整数
- while(k >= e){
- if(n % 2) pi += 4*k;
- else pi -= 4*k;
- n++;
- k = 1.0 / (2*n - 1); // 这里要更新 k 的值, 不然一直是一样的
- }
- printf("%.6lf", pi);
- return 0;
- }
复制代码
|
|