This question already has answers here:
Division result is always zero [duplicate]
(4个答案)
Dividing 1/n always returns 0.0 [duplicate]
(3个答案)
2年前关闭。
正如我所检查的那样,数据类型中没有值溢出或其他问题?
结果代码如下所示:
(4个答案)
Dividing 1/n always returns 0.0 [duplicate]
(3个答案)
2年前关闭。
#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);
}
正如我所检查的那样,数据类型中没有值溢出或其他问题?
最佳答案
问题在以下代码行中:
abc=pow(1/2, i) * pow((x-1) / x, i + 1);
1/2
始终为零,并且当(x - 1)/x
> 0时x
也为零。如果要使用十进制值,则可以使用0.5
或1.0 / 2.0
。另外,请注意除以零。结果代码如下所示:
abc=pow(0.5, i) * pow((x - 1.0)/x, i + 1.0);
关于c - 为什么输出总是零(0.0000)? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50567087/
10-09 09:04