gpt4 book ai didi

c - 括号影响 "c"中的输出

转载 作者:行者123 更新时间:2023-11-30 18:37:52 24 4
gpt4 key购买 nike

该程序用于计算系列1/1的总和! + 2/2! + ......直到输入的数字为止。

这是我写的代码。

/*我使用了 5 个变量和嵌套循环。我什至不知道这是否是编写程序的好方法 */

问题:当我如图所示添加括号(在完整代码下方)时,输出是不同的,为什么会发生这种情况?

#include <stdio.h>
#include <conio.h>
int main ()
{
int a,i,n;
float sum=0,prod;
printf ("Enter the number\n");
scanf ("%d",&a);
for (i=1;i<=a;i++)
{
for (n=1;n<=i;n++)
{
for (prod=1;n<=i;n++)
prod = prod * 1/n;
}
sum = sum + prod*i;
}
printf ("sum = %f\n ",sum);
getch();
return 0;
}

带括号

prod = prod * (1/n);

请帮我解决这个问题,并提前致谢。

最佳答案

prod = prod * (1/n); // wrong

这意味着首先完成 (1/n) - 这是零(因为两者都被视为 int,并且 1 小于 n >).

prod = prod * 1/n; // Correct

这意味着首先完成prod * 1(从左到右关联) - 结果是double,所以最终结果prod * 1/n 也是一个 double (这是正确的结果)。

关于c - 括号影响 "c"中的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35528818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com