在 C++ 中不使用关系运算符查找数组中的最小值


在此问题中,我们给定一个由 n 个正元素组成的数组 arr[]。我们的任务是在不使用关系运算符的情况下在数组中找到最小值。

编程中的关系运算符是用于检查两个值之间的关系的运算符。比如 ==(等于)、大于(>)、小于(<)等。

让我们举一个例子来理解这个问题,

输入

arr[] = {4, 2, 5, 1, 7}

输出

1

说明

The smallest element is 1.

解决方案方法

解决此问题的简单方法是使用循环,并检查数组所有元素中最小元素。为了查找两个给定元素之间的最小元素,我们可以比较当我们两个都减去 1 时哪个元素首先变成 0。

程序说明我们解决方案的工作原理,

示例

 在线示例

#include <iostream>
using namespace std;
int findMin(int a, int b) {
   int minVal = 0;
   while (a && b) {
      minVal++;
      a--;
      b--;
   }
   return minVal;
}
int findMinimumElement(int arr[], int n) {
   int minVal = arr[0];
   int i = (n - 1) ;
   while(i){
      minVal = findMin(minVal, arr[i]);
      i--;
   }
   return minVal;
}
int main() {
   int arr[] = {4, 2, 5, 1, 7};
   int n = sizeof(arr) / sizeof(arr[0]);
   cout<<"The minimum element is "<<findMinimumElement(arr, n);
   return 0;
}

输出

The minimum element is 1

更新于: 2021 年 3 月 12 日

144 次浏览

开启您的 职业

通过完成课程获得认证

立即开始
广告