如何在C中将常量Celsius值转换为Fahrenheit?

时间:2014-01-08 02:23:25

标签: c

我正在使用C,我的任务是为摄氏温度定义一个常量,并让程序将其转换为华氏温度。要做到这一点,我会乘以9,然后除以5,然后加上32.我迷路了。这是我的非工作代码:

#include<stdio.h>

#define C 23
int F;

int main()
{
    F = (5/9)*(C - 32);
    scanf("%d", &F)
    printf(F);
}

非常感谢任何帮助。我知道这段代码有很多错误,我今天开始学习C语言。我不在乎整件事需要报废。

4 个答案:

答案 0 :(得分:0)

表达式(5/9)执行整数除法并等于0。如果你真的想要华氏温度的整数值,那么尝试将除法作为最后一步。一旦你使代码有点工作,测试它几个已知的值,包括冰点,以确保数学是正确的。注意操作顺序和括号。

如果需要子单位精度,可以使用浮点值,例如5.0

答案 1 :(得分:0)

我很久以前在C中工作,但我能看到的问题是为F声明的int类型尝试将其更改为float然后检查结果。因为int(5/9)会给出零,结果总是为零。

答案 2 :(得分:0)

在编写代码之前,您是否阅读过任何基本的C书?你的短期课程中有很多非常基本的问题

  1. 为什么在从C转换时从输入读取F.您正在计算F然后在scanf中再次读取它,因此先前的结果被覆盖
  2. 为什么要在需要C结果时打印F
  3. printf功能错误。格式为printf(<format_string>, <values_to_print>)
  4. 整数除法产生整数。 5和9都是整数,因此结果也将是int。你至少需要一面漂浮/双面。 5.0 / 9,5 / 9.0,5./9,double(5)/ 9 ......或其他任何类似的工作

答案 3 :(得分:0)

你应该阅读更多基本的c书。你的代码甚至无法编译。 我修改了你的代码,你的意思是?

#include<stdio.h>

int main()
{
    float F;
    int C;
    scanf("%d", &C);
    F = C*9.0/5 + 32;
    printf("%.3f\n",F);
}