比较C函数中的三个浮点数

时间:2017-03-26 12:06:07

标签: c function if-statement max

我在C中写了这个,试图获得get_extreme的最大值,但是它没有在编译器中返回结果。

它应该返回最大浮点值,或者如果最大值全部为3,则返回该结果。

int get_extreme(float num1, float num2, float num3) {

/* local variable declaration */
int result;

if (num1 == num2 && num2 == num3 ){
    result = num1;
}
else if (num1 > num2 && num2 > num3){
    result = num1;}
else if (num2 > num3 && num3 > num1){
    result = num2;}
else {
    result = num3;}

return result;
}

2 个答案:

答案 0 :(得分:4)

您已将结果定义为int。也是返回值。但是,当您为结果变量赋值时,您可以指定一个浮点数。

你的逻辑似乎是错误的。如果num3大于num1num2大于num3num2大于num1,则返回num3例如。 将条件更改为:

if (num1>=num2&& num1>=num3) 
result=num1;
else if (num2>=num1&& num2>=num3) 
result=num2;
else
result=num3;

答案 1 :(得分:1)

float get_extreme(float num1, float num2, float num3) {

    /* local variable declaration */
    float result;

    if (num1 == num2 && num2 == num3) {
       result = num1;
    } else if (num1 > num2 && num1 > num3) {
       result = num1;
    } else if (num2 > num3 && num2 > num1) {
       result = num2;
    } else {
       result = num3;
    }

    return result;
 }