gpt4 book ai didi

c - 我在 mingw 中尝试了我的第一个程序。我得到以下输出。我的程序出了什么问题?

转载 作者:行者123 更新时间:2023-11-30 18:32:34 25 4
gpt4 key购买 nike

程序:

#include<stdio.h>
main()
{
int fahr;
float cel;
for(fahr=0;fahr<300;fahr=fahr+20)
{
cel=(5/9)*(fahr-32);
printf("\n %d \t %f",fahr,cel);
}
}

我得到的输出:

   0       0.000000
20 0.000000
40 0.000000
60 0.000000
80 0.000000
100 0.000000
120 0.000000
140 0.000000
160 0.000000
180 0.000000
200 0.000000
220 0.000000
240 0.000000
260 0.000000
280 0.000000

最佳答案

两个 int 之间的除法总是会产生另一个 int。如果两项中的一项是浮点型或 double 型,则另一项会自动获得 promoted到该类型,从而产生正确的结果。

所以 typeof(5/9) = int 而 typeof(5.0/9) = typeof(5/9.0) = typeof(5.0/9.0) = double。

因此正确的版本是:

cel=(5./9.)*(fahr-32); 

注意:每当存在具有不同“等级”类型的数学表达式时,都会发生这种情况,较低等级的类型会升级以匹配最高等级的类型。

关于c - 我在 mingw 中尝试了我的第一个程序。我得到以下输出。我的程序出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12429467/

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