我正在尝试将华氏温度改为开尔文,而公式为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不是函数或函数指针
请告诉我这意味着什么?
答案 0 :(得分:8)
您错过了乘法运算符*
kelvin = 5.0 / 9.0 * (n - changeToC) + changeToK;
如果没有乘法运算符,编译器会将括号()
视为函数调用运算符。
答案 1 :(得分:0)
kelvin = 5.0 / 9.0 * (n - changeToC) + changeToK;
放置乘法运算符..这解决了您的问题