我用C语言编写了一个子程序,用Xcode计算一个部分函数,但它不起作用。
我知道“return”语句有很多错误,但我找不到一种方法来改善它。
我用“return(result * 1)”和“return(result = result)”表示return,把每个函数放在返回括号之间,比如“return(result = pow(x,5)+ pow(y,3));“但没有一个奏效。
你能告诉我怎么做才对并解释原因吗?
#include <stdio.h>
#include <math.h>
double
funmath(int x, int y)
{
double result;
if( x >= 50 )
result = pow(x,5) + pow(y,3);
else if( x >= 40 )
result = 5 * x + y + 9;
else if( x >= 0 )
result = x / 5 + 7 * y;
else
return(result);
}
1条答案
按热度按时间iibxawm41#
你要求一个解决方案和一个解释。
解决方案
说明
你的
double
函数在任何情况下都需要return
something。您的函数具有以下情况:if (x >= 50)
:将result
设置为某个值,但不对return
进行任何操作else if( x >= 40 )
:将result
设置为某个值,但不对return
进行任何操作else if( x >= 0 )
:将result
设置为某个值,但不对return
进行任何操作else
:不初始化result
,但返回它让我们不要忘记
else if
意味着if
和比当前条件更早的else if
的条件都不为真,但当前else if
的条件为真,让我们不要忘记else
意味着“以上都不为真”。由于您在else
中有return
,因此在前三种情况下,您没有return
任何东西,因此,您违反了语言的最佳实践。这就是为什么,解决方案是return
的东西,不管是什么。