注册 登录
编程论坛 C语言论坛

哪里错了那,求改正

冬青123 发布于 2019-07-15 10:30, 2194 次点击
x=2.5
#include<stdio.h>
#include<math.h>
main()
{int i,j,p,t=1;
double sum=1,m,a,n=1.0;
for(i=1;i<=15;i++) {
for(j=1;j<=i;j++) {n*=j;}
m=pow(2.5,i);
a=(t*m)/n;
sum+=a;
t=-1;}
printf("%f",sum);
}
只有本站会员才能查看附件,请 登录
4 回复
#2
LTao2019-07-15 11:03
int x=2.5;
#3
冬青1232019-07-15 11:05
回复 2楼 LTao
x=2.5只是条件,不是程序里的再说你那样定义也不对呀
#4
rjsp2019-07-15 11:05
程序代码:
#include <stdio.h>

int main( void )
{
    double x = 2.5;
    unsigned n = 15;

    double result = 1;
    double a=-1, b=1;
    for( unsigned i=0; i!=n; ++i )
    {
        a *= -x;
        b *= i+1;
        result += a/b;
    }
    printf( "%f\n", result );
}

输出 1.917915,与图片中的结果不一致。

#5
rjsp2019-07-15 16:50
特意写了个程序,求得无损结果应当是
657459357691747/342798989524992 = 1.9179150982993620109936244273008……
所以图片中的“1.917914”肯定是错误的。
1