猿问

请大神指教这段代码哪里错了

//;利用函数求s=1/2^2+3/4^2+5/6^2+……+(2n-1)/(2n)^2,直到最后一项的值<=10^-4,并把计算结果作为函数返回值。
#include <stdio.h>
#include <math.h>
double p();
int main()
{
	double a;
	a=p();
	printf("result=%lf",a);
	return 0;
}
double p()
{
	int n;
	double t,s=0;
	for(n=1;(int)fabs(t)*10000<=1;n++)
	{
		t=(2*n-1)/((2*n)*(2*n));
		s=s+t;
	}
	return s;
}

运行结果显示的是0.000000,是哪里有问题?

路卡利欧
浏览 1530回答 3
3回答

JustWannaHugU

#include <stdio.h> #include <math.h> double p(); int main() {     double a;     a=p();     printf("result=%lf",a);     return 0; } double p() {          double t,s=0;     for(double n=1;(int)(fabs(t)*10000)<=1;n++)     {         t=(2*n-1)/((2*n)*(2*n));         s=s+t;     }     return s; }

JustWannaHugU

把n改成double试试看
随时随地看视频慕课网APP
我要回答