1/i是整除,结果为整数,i大于1的时候,1/i结果为0.
把1/i改为1.0/i
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;
}