在C中将华氏温度改为开尔文

时间:2013-01-20 18:49:57

标签: c

我正在尝试将华氏温度改为开尔文,而公式为K = 5/9 (° F - 32) + 273

我的代码是:

#include <stdio.h>
double const changeToC = 32.0;
double const changeToK = 273.16;

void temperatures(double n);

int main(void)
{
    int q = 'q';
    double userNumber;

    printf("please enter fahrenheit number: \n");
    scanf("%f", &userNumber);

    while (userNumber != q)
    {
        temperatures(userNumber);
        printf("\n");
        printf("please enter fahrenheit number: \n");
        scanf("%f", &userNumber);
    }
}

void temperatures(double n)
{
    double celsius, kelvin;

    celsius = 5.0 / 9.0 * (n - changeToC);
    kelvin = 5.0 / 9.0 (n - changeToC) + changeToK;

    printf("fahrenheit is: %.2f - celsius is: %.2f - kelvin is: %.2f", 
           n, celsius, kelvin);
}

我需要输入以获得华氏两倍,并打印摄氏度和开尔文的值。

在华氏度为开尔文(kelvin = 5.0 / 9.0 (n - changeToC) + changeToK;)行时,我收到错误:

  

调用对象类型double不是函数或函数指针

请告诉我这意味着什么?

2 个答案:

答案 0 :(得分:8)

您错过了乘法运算符*

kelvin = 5.0 / 9.0 * (n - changeToC) + changeToK;

如果没有乘法运算符,编译器会将括号()视为函数调用运算符。

答案 1 :(得分:0)

kelvin = 5.0 / 9.0 * (n - changeToC) + changeToK;

放置乘法运算符..这解决了您的问题