gpt4 book ai didi

c - 我在 C 中以正确的方式划分吗?

转载 作者:行者123 更新时间:2023-12-02 07:57:57 25 4
gpt4 key购买 nike

我需要将公式应用于三个变量。一些操作(除法)给我一个 0 而不是正确的数字。所以我得到的结果与我对公式的预期不同。

我认为问题与 C 管理数据类型及其余数的方式有关。为此,我尝试将 int 变量转换为 float 变量或将我除的数字四舍五入。但是所有这些仍然不起作用,我无法理解我所缺少的东西。

请你看看我的代码,让我知道错误在哪里?谢谢

double grade(int lc, int wc, int sc)
{
wc = (float)wc;
lc = (float)lc;
sc = (float)sc;
float L = round((wc/100)/lc);
float S = round((wc/100)/sc);
float index = 0.0588 * L - 0.296 * S - 15.8;
return index;
}

最佳答案

问题:

wc = (float)wc;
lc = (float)lc;
sc = (float)sc;

所有这些语句都不是你想的那样,因为这些变量的类型本来就是int

您正在将 int 转换为 float 并将其分配回 int

解决方案:

将值传递给 float 而不是 int 给函数,隐式转换将处理其余部分。

将您的函数签名更改为

双级(float lc, float wc, float sc)

关于c - 我在 C 中以正确的方式划分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61045108/

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