在不使用C ++中的关系运算符的情况下在数组中查找最大值
在这个问题中,我们得到一个大小为n的数组arr[],该数组由正值组成。我们的任务是在不使用关系运算符的情况下在数组中找到最大值。
让我们举个例子来了解这个问题,
输入:arr[]={5,1,6,7,8,2}
输出: 8
解决方法
由于我们需要在不使用逻辑运算符的情况下比较值。为此,我们需要执行重复的减法运算,持续时间越长的数字越大。
我们将所有值减一,直到它们变为零。我们将从数组的前两个值开始,然后找到两个中的最大值。然后,我们需要将其余的数组值与数组的最大元素进行比较。使用此方法,我们将找到 所有元素的最大值。
该程序说明了我们解决方案的工作原理,
示例
#include <iostream> using namespace std; int returnMax(int x, int y) { int c = 0; while(x || y) { if(x) x--; if(y) y--; c++; } return c; } int findMaxEle(int A[], int N) { int maxVal = A[0]; for (int i = N-1; i; i--) maxVal = returnMax(maxVal, A[i]); return maxVal; } int main() { int A[] = {5, 1, 6, 7 , 8, 2}; int N = sizeof(A) / sizeof(A[0]); cout<<"数组的最大元素是 "<<findMaxEle(A, N); return 0; }输出结果
数组的最大元素是 8>