所以我刚刚学习了指针,以及如何在C语言中创建具有独立函数的程序。我将这个华氏温度设置为celcius程序,但是我的编译器在我的printf中给出了一个错误:“void表达式的无效使用”。
我知道这和我的华氏温度有关。但我不知道怎么解决?我试着把函数改为double,但没用。有什么想法吗?谢谢。
我的代码:
#include <stdio.h>
void fahrenheit_temperature(double celcius_temp, double *fahrenheit_temp){
*fahrenheit_temp = (9.0 / 5.0) * celcius_temp + 32.0;
}
int main(void){
double fahrenheit_temp;
printf("Freezing point: %6.2f F.\n",
fahrenheit_temperature(0.0, &fahrenheit_temp));
printf("Boiling point: %6.2f F.\n",
fahrenheit_temperature(100.0, &fahrenheit_temp));
return 0;
}
新代码:
#include <stdio.h>
void fahrenheit_temperature(double celcius_temp, double *fahrenheit_temp){
*fahrenheit_temp = (9.0 / 5.0) * celcius_temp + 32.0;
}
int main(void){
double fahrenheit_temp, celcius_temp;
printf("Enter degrees celcius: ");
scanf("%lf", &celcius_temp);
fahrenheit_temperature(celcius_temp, &fahrenheit_temp);
printf("The converted temperature is: %f\n", fahrenheit_temp);
return 0;
}
最佳答案
您有一个变量,因此在printf中使用该变量,如下所示:
#include <stdio.h>
void fahrenheit_temperature(double celcius_temp, double *fahrenheit_temp){
*fahrenheit_temp = (9.0 / 5.0) * celcius_temp + 32.0;
}
int main(void){
double fahrenheit_temp;
fahrenheit_temperature(0.0, &fahrenheit_temp);
printf("Freezing point: %6.2f F.\n",fahrenheit_temp);
fahrenheit_temperature(100.0, &fahrenheit_temp);
printf("Boiling point: %6.2f F.\n",fahrenheit_temp);
return 0;
}
然后不需要更改函数fahrenheit_temperature的返回类型,只需将函数保留在printf语句之外,因为它不返回任何值。