首页 > 解决方案 > 用 C 计算 Pi

问题描述

我想计算 pi,但结果是 3.058403。如何修复此代码?

#include <stdio.h>

int main(){
double x = 0;
float g =0;

printf("How many terms to calculate pi to? ");
scanf("%f", &g);

int n;
for (n = 0; n < g ; n++){
  
     double z = 1.0 / (2 * n + 1);
     if ((n % 2) == 1){
        z = z * -1;
     }
     x = (x + z);
     }
     double p = 4 * x;
    printf("The value of pi is: %f", p);
  return 0;
 }

标签: c

解决方案


这不是真正的答案,因为实际答案已在评论部分讨论。

您的代码的更正版本:

  • 删除了无意义的括号
  • 使用有意义的变量名
  • 用于int整数比较
  • 尽可能接近其范围的变量声明
  • 代码格式正确
#include <stdio.h>

int main() {
  printf("How many terms to calculate pi to? ");

  int nbofterms;
  scanf("%d", &nbofterms);

  double x = 0;

  for (int n = 0; n < nbofterms; n++) {
    double z = 1.0 / (2 * n + 1);
    if (n % 2 == 1) {
      z *= -1;
    }
    x = (x + z);
  }

  double pi = 4 * x;
  printf("The value of pi is: %f", pi);
  return 0;
}


推荐阅读