否则,如果选项 3 没有产生答案……我做错了什么?
Else if option 3 does not produce answer...what did I do wrong?
程序可以运行,但我不明白为什么第三个函数
else if 语句没有 return 一个准确的值。感谢您在
中的帮助
提前。
finaltemp = newtemp(t, choice);
printf("\nThe converted temperature is: %f", finaltemp);
return(0);
}
double newtemp(double a, double b)
{
double result;
if (b==1)
{
result = (a-(273.15));
}
if (b==2)
{
result = (a+(273.15));
}
if (b==3)
{
result = (((5/9)*(a))-32);
}
if (b==4)
{
result = (((9/5)*(a))+32);
}
if (b==5)
{
result = (((9/5)*(a))-459.67);
}
if (b==6)
{
result = ((a+459.67)*(9/5));
}
return(result);
}
您正在执行整数除法,而不是浮点除法。
表达式(5/9)
将两个int
值相除,所以结果是int
,具体为0。您需要使用浮点常量来强制进行浮点除法。
if (b==3)
{
result = (((5.0/9.0)*(a))-32);
}
if (b==4)
{
result = (((9.0/5.0)*(a))+32);
}
if (b==5)
{
result = (((9.0/5.0)*(a))-459.67);
}
if (b==6)
{
result = ((a+459.67)*(9.0/5.0));
}
程序可以运行,但我不明白为什么第三个函数
else if 语句没有 return 一个准确的值。感谢您在
中的帮助
提前。
finaltemp = newtemp(t, choice);
printf("\nThe converted temperature is: %f", finaltemp);
return(0);
}
double newtemp(double a, double b)
{
double result;
if (b==1)
{
result = (a-(273.15));
}
if (b==2)
{
result = (a+(273.15));
}
if (b==3)
{
result = (((5/9)*(a))-32);
}
if (b==4)
{
result = (((9/5)*(a))+32);
}
if (b==5)
{
result = (((9/5)*(a))-459.67);
}
if (b==6)
{
result = ((a+459.67)*(9/5));
}
return(result);
}
您正在执行整数除法,而不是浮点除法。
表达式(5/9)
将两个int
值相除,所以结果是int
,具体为0。您需要使用浮点常量来强制进行浮点除法。
if (b==3)
{
result = (((5.0/9.0)*(a))-32);
}
if (b==4)
{
result = (((9.0/5.0)*(a))+32);
}
if (b==5)
{
result = (((9.0/5.0)*(a))-459.67);
}
if (b==6)
{
result = ((a+459.67)*(9.0/5.0));
}