为什么输出始终为零(0.0000)?

时间:2018-05-28 12:59:27

标签: c

#include<stdio.h>
#include<conio.h>
#include<math.h>
int main()
{
    int x,i;
    double abc,sum=0;
    printf("Enter a value for x:");
    scanf("%d",&x);
    for(i=0;i<=6;i++)
    {
        abc=pow(1/2,i)*pow((x-1)/x,i+1);
        sum=sum+abc;
    }
    printf("Sum is %f\n",sum);

}

正如我所检查的那样,数据类型中的值也没有溢出,或者它是否是其他东西?

1 个答案:

答案 0 :(得分:0)

问题在于这行代码:

1/2

(x - 1)/x始终为零,x&gt; 0.5也为零0.如果您想使用小数值,可以使用1.0 / 2.0abc=pow(0.5, i) * pow((x - 1.0)/x, i + 1.0); 。另外,注意除以零。

结果代码如下所示:

{{1}}