gpt4 book ai didi

c - 为什么它不以从 300 到 -40 的相反顺序打印华氏度和等效摄氏度的值?

转载 作者:行者123 更新时间:2023-12-01 12:29:28 27 4
gpt4 key购买 nike

#include<stdio.h>

main()
{
int fahr;
for(fahr = 300; fahr >= -40; fahr = fahr - 20)
printf("%3.d %8.d\n ",fahr,(5.0/9.0) * (fahr - 32.0));
}

它打印出等价的值,但都是错误的。为什么会这样?

最佳答案

转换为摄氏度的表达式使用 double 类型的常量,因此表达式的类型为 double。因为您将 %d 格式说明符与 double 值一起使用,所以会出现未定义的行为。

将第二个格式说明符更改为 %8.f,您将获得预期的输出。此外,将第一个格式说明符更改为 %3.1d,这样当 fahr0 时,它将打印值而不仅仅是空白。

printf("%3.1d %8.f\n ",fahr,(5.0/9.0) * (fahr - 32.0));

关于c - 为什么它不以从 300 到 -40 的相反顺序打印华氏度和等效摄氏度的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35758870/

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