c - K&R C 章练习 int 到 float?

标签 c variables for-loop types type-conversion

Kernighan 和 Ritchie 的第 1.3 节使用以下温度转换程序来介绍 For 语句:

#include <stdio.h>

/* print Fahrenheit-Celsius table */

int main(){

        int fahr;
        for (fahr = 0; fahr <= 300; fahr = fahr + 20)
            printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}

它没有解释这个程序如何使用 int 变量来生成浮点值而不会出现错误。是什么让这个有效?方程中的所有变量都必须是同一类型吗?在不理解这一点的情况下,我犹豫是否继续前进。

最佳答案

转换是隐式的,但启用警告应该会向您显示一条消息,解释 int 正在转换为 double。

这里(5.0/9.0)*(fahr-32)),一个 double 乘以一个 int,然后使用通常的算术转换将 int 转换为 double。

算术中的类型不一定必须匹配。 C 有整整一章专门讨论转换:6.3 转换,6.3.1 算术操作数。

关于c - K&R C 章练习 int 到 float?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34661327/

相关文章:

java - 错误: Duplicate local variable

python - 在 pyspark 中同时运行而不是顺序运行 for 循环

c - 如何在进行系统调用时阻止控制台窗口出现?

c - 如何将十六进制数据转换为gdb中的数据结构

Javascript:将值归因于 id 这段代码有什么问题?

android - 如何使用 xml 按钮以编程方式禁用按钮

java - 当 charAt(i) = ' ' 时,如何防止 Java for 循环中断?

c - Valgrind 使用未初始化值和无效读取

java代码为组合创建唯一的代码

variables - IntelliJ : How to auto-highlight variables like in Eclipse