gpt4 book ai didi

javascript - 在此 C 代码中无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 06:00:50 25 4
gpt4 key购买 nike

我想解决这个问题,因为我比任何其他语言都更了解 JavaScript,所以我首先用 JavaScript 编写它,现在我正在尝试将它翻译成 C。

Sample image

这是我的 JavaScript 代码

var SUM=0,RES=1,n=prompt('Enter n'),i=1,j=1;
for(var i=1;i<=n;i++){

SUM = 0;

for(var j=1;j<=i;j++){

SUM = SUM+ i/(2*j);

}
RES = RES * SUM
}
console.log(RES)

认为这运作良好。我将它翻译成 C,结果是:

#include "stdio.h"

int main(void)
{
int n,i,j;
float SUM=0,RES=1;
printf("n equals to ");
scanf("%d", &n);

for(i=1;i<=n;i++){
SUM = 0;

for(j=1;j<=i;j++){

SUM = SUM + i/(2*j);

}
RES = RES * SUM;
}
return RES;
}

JavaScript 至少返回一个数字。 C代码总是返回0,问题出在哪里?

最佳答案

被整数除法欺骗(一个很常见的问题)!如果您将一行更改为:

SUM = SUM + (float)i/(2*j);

原因是因为整数除法的结果是另一个整数。所以每当

i/2*j < 1 (for positive integers)

您的结果被 chop 为 0。在您的情况下,不等式始终为真,因此您只是将大量零相加。只需先将 i 转换为 float ,然后除以得到 double 结果。

关于javascript - 在此 C 代码中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19618575/

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