#include <stdio.h>int main()
{
float a,b,c,max
scanf("%f %f %f",&a,&b,&c)
if(a<0)
a=-a
if(b<0)
b=-b
if(c<0)
c=-c
if(a<b)
max=b
else
max=a
if(max<c)
max=c
printf("%f\n",max)
return 0
}
扩展资料:
求最值的方法
1、判别式求最值
主要适用于可化为关于自变量的二次方程的函数。
2、函数单调性
先判定函数在给定区间上的单调性,而后依据单调性求函数的最值。
3、数形结合
主要适用于几何图形较为明确的函数,通过几何模型,寻找函数最值。
这段程序有几个问题,
首先,浮点数无法比较是否等于0,因此不能用float,而应该用整型,即int。
其次,个人感觉没有理解二分法的实质是什么,从程序中没有看到二分法的运用。
我觉得,要看二分法能不能用到这道题,首先得看这个函数是不是单调的。
从图中可以看出,函数单调递增,因此可以使用二分法。
其次,二分法的很容易用递归的形式表示出来,这里建议使用递归的方式写二分程序。
代码如下:
int binary_calculate(int low, int high, int target){
int mid = low + (low + high) / 2
if (low > high)
return-11
else{
int res = static_cast<int> (2 * pow(mid, 3.0) - 4 * pow(mid, 2.0) + 3 * mid - 6)
if (res == target)
return mid
else if (res > target)
return binary_calculate(low, mid - 1, target)
else
return binary_calculate(mid + 1, high, target)
}
}
调用函数直接这样就行了:
int res = binary_calculate(-10,10,0)最后的结果如图: