为什么这个数输出不对呀

img

img


我感觉自己写的挺对的Õ_Õ,但是正常来说这个结果不应该是.000000啊

a/n,2个int相除,结果是int,小数被丢弃。因此你这里term一直为零。

#include<stdio.h>
#include<math.h>
int main()
{
   double PI,sum = 0,term = 1.0;
   int a = 1,n = 1;
   while(fabs(term) > 1e-6){
           term = a / (1.0 * n);
           sum = sum + term;
           a = -a;
           n = n + 2;
   }
   PI = sum * 4;
   printf("Π=%lf",PI);
   return 0;
}

题目要求最后一项的绝对值小于10的-6次方。
而你的程序while循环终止条件是大于10的-6次方。
最好把term赋个初始值