为什么这段代码不起作用?我的IDE是Visual Studio 2013。
#include <stdio.h>
float tempatureGuide(float F, float C);
#define FREEZING_PT 32.0f
#define SCALE_FACTOR (5.0f/9.0f)
int main(void)
{
float fahrenheit = 0.0;
float celsius = 0.0 ;
int convertTemp;
printf ("Enter 0 to calculate Celsius or 1 to calculate Fahrenheit: ");
scanf ("%d", &convertTemp);
if (convertTemp == 0)
{
// compute Celsius
printf("Enter Fahrenheit temperture: ");
scanf("%f", &fahrenheit);
celsius = ((fahrenheit - FREEZING_PT) * SCALE_FACTOR);
printf("Fahrenheit = %f and Celsius = %f\n", fahrenheit, celsius);
float tempatureGuide(fahrenheit, celsius); // Error here
}
else
{
// compute fahrenheit
printf("Enter the temperature in degrees fahrenheit\n\n");
scanf("%f", &fahrenheit);
celsius = (SCALE_FACTOR)* (fahrenheit - FREEZING_PT);
printf("The converted temperature is %f", celsius);
float tempatureGuide(fahrenheit, celsius); // and here
}
return (0);
}
float tempatureGuide(float F, float C){
if (F < 32 || C < 0)
printf("It is freezing!");
else if (F <= 60 || C <= 16)
printf("It is cold");
else if (F >= 70 || C >= 21)
printf("It is just right");
else if (F >= 82 || C >= 28)
printf("It is warm");
else if (F > 95 || C > 35)
printf("It is hot");
else
printf("Please enter a number!");
return (0);
}
这里的目标是添加我之前做过的转换温度项目,并为它添加一个if else
语句函数来评论temp。我得到的错误是
Error 3 error C2078: too many initializes
在我调用我的函数的两行上。我搜索了一个答案,但找不到任何答案。
答案 0 :(得分:3)
这一行看起来像是一个float
的C ++初始化尝试,其中有一个参数太多(因此“太多初始化器”错误),而不像函数调用。 / p>
float tempatureGuide(fahrenheit, celsius);
大概你想调用函数并将结果存储在变量中:
float temp = tempatureGuide(fahrenheit, celsius);
或者只是调用函数并忽略返回值:
tempatureGuide(fahrenheit, celsius);
特别是因为你的函数总是返回0
,所以人们可能会质疑是否需要非void返回类型。
答案 1 :(得分:1)
你需要调用一个函数
float tempatureGuide(float fahrenheit, float celsius) { //...}
as
float retval = tempatureGuide(fahrenheit, celsius);
或至少
tempatureGuide(fahrenheit, celsius); // not need to use return value
仅
答案 2 :(得分:0)
这只是一个简单的错误。请更改2行代码,您可以在其中调用tempatureGuide(华氏度,摄氏度);功能如下。
float tempatureGuide(fahrenheit, celsius); --> float ret = tempatureGuide(fahrenheit, celsius);
我在VS2013中测试了相同的内容,因为您使用了相同的更改。我能够成功编译并运行它。查看附件。