比较 C 函数中的三个 float

标签 c function if-statement max

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

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

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;
}

最佳答案

您已将结果定义为 int。还有返回值。但是,当您为结果变量分配值时,您分配的是 float 。

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

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

关于比较 C 函数中的三个 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43028468/

相关文章:

c - 反斜杠转义序列是如何在编译器中实现的?

java - 准备一组可以传递给 java 中的函数的参数

python - 函数不返回任何值 - 尝试在不使用 x 的情况下找到集合中的最大数字

function - EMACS find-grep 命令切换窗口

c - C 中的安全二进制搜索

c - C atoi 函数中的潜在错误

sql - 为什么将 SQL 查询包装在 if 语句中会显着增加其运行时间?

mysql - SQL 存储过程 : If statement not behaving as expected

python-3.x - 如果条件,则返回语句在 python 中不起作用

c - karger Minimum Cut 算法因大输入而崩溃