近似求PI
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
输入格式:
输入在一行中给出精度eps,可以使用以下语句来读输入:
scanf("%le", &eps);
输出格式:
在一行内,按照以下格式输出π的近似值(保留小数点后5位):
PI = 近似值
输入样例:
1E-5
输出样例:
PI = 3.14158
程序清单:
#include<stdio.h>
int main()
{
double eps;
scanf("%le", &eps);
int fz[100],fm[100],count,sum;
fz[0]=1;fm[0]=1;count=0;
for(int i=1,k=3;;i++,k+=2) //建立分母和分子的数列
{
fz[i]=fz[i-1]*i;
fm[i]=fm[i-1]*k;
count++;
if(fz[i]/fm[i]<eps)break;
}
for(int i=0,sum=0;i<count;i++)
{
sum=sum+fm[i]/fm[i];
}
printf("PI = %.5f",2*sum);
}
结果:**←**为什么还会输出none这种东西的?
请求大佬指出错误~还有就是数组的大小通常怎么确定?以前我都是
scanf("%d",&n);int a[n];且用了多次了,但被告知不能这样做??