首页 > 解决方案 > 为什么当我输入 3 时我在这个程序中得到 0 结果?

问题描述

如果我输入一个值,让我们说“3”,我得到的结果为 0。请解释原因,如果有办法,请告诉我。我应该使用浮动吗?

#include <stdio.h>
int getResult (int nVal)
int c , f;
int nExp;
double dSum;
f = 1;
dSum = 0;

nExp = nVal;
for (c = 1; c <= nVal; c++)
{
    f = f * c;
    dSum += f / nExp;
    nExp = nExp * nVal;
}

return  dSum;
int main ()
{

int nVal, nCompute;
double dSum;
printf("Enter Number to be Computed");
scanf("%d",&nVal);

nCompute = getResult (nVal);

printf("%d", nCompute);

return 0;   
}

标签: c

解决方案


fnExpints,所以你使用整数除法来划分它们,只保留结果的“整体”部分,在小数点的左边,它是零。相反,您将其中一个或两个定义为doubles,因此您将执行浮点除法。


推荐阅读