求最大值最小值问题
两个数的最值问题
-
两个数的比较问题很简单,主要有以下方法:
-
直接使用if语句判断。
>>int a = 1,b = 2,max,min;
>>if(a>b) {max = a;min = b;}
>>else {max = b;min = a;}
- 使用三元表达式
>>int a = 1,b = 2,max,min;
>>max = a>b?a:b;
>>min = a<b?a:b;
多个数的最值问题
-
利用max和min不断与数据进行比较,max与min不断进行更新。
>>int a[5] = { 14,21,32,45,1 };
>>int i, max, min;
>>max = a[0];
>>min = a[0];
>>for (i = 1; i < 5; i++)
{
max = (max > a[i]) ? max : a[i];
min = (min < a[i]) ? min : a[i];
}
-
用递归的方法求最值问题
int max(int a[], int n)
{
if (n == 0)
return a[0];
return a[n] > max(a, n - 1) ? a[n] : max(a, n -1);
}