5

我正在尝试将华氏温度更改为开尔文,公式是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 不是函数或函数指针

你能告诉我这是什么意思吗?

4

2 回答 2

8

你错过了乘法运算符,*

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

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

于 2013-01-20T18:51:51.090 回答
0
kelvin = 5.0 / 9.0 * (n - changeToC) + changeToK;

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

于 2013-01-20T18:54:47.860 回答