这运行结果为什么不对啊

img

1/i是整除,结果为整数,i大于1的时候,1/i结果为0.
把1/i改为1.0/i

img

1/i是两个整数相除,C语言里两个整数相除是进行整除,结果只保留整数部分,比如1/3=0,要改为1.0/3才是0.333333
所以你要么i改成double型,要么改成1.0/i


#include<stdio.h>
#include<math.h>
int main(void)
{
    int n;
    long N;
    double i, a, pi;
    n = 1;
    a = 0;
    i = 1;
    do
    {
        a = a - pow(-1,n)*i;
        n = n + 1;
        i = 1/(2 * (double)n - 1);
    } while (i > 10e-8);         
    pi = 4 * a;
    printf("pi=%7.5f\n",pi); 
    return 0;
}