정수 배열이 제공됩니다. 작업은 최소 비교 횟수에서 배열의 최소 및 최대 요소를 찾는 것입니다.
입력
Arr[] = { 1,2,4,5,-3,91 }
출력
Maximum element : 91 Minimum Element : -3
설명 − 여기서는 비교 횟수를 최소화하기 위해 Arr[0]으로 최대 및 최소 요소를 초기화합니다. 그리고 두 번째 요소부터 시작하여 각 값을 최소값과 최대값과 비교하고 그에 따라 업데이트합니다.
입력
Arr[] = { 10,20,21,31,18,11 }
출력
Maximum element : 31 Minimum Element : 10
설명 − 여기에서도 비교 횟수를 최소화하기 위해 Arr[0]으로 최대값과 최소값을 초기화합니다. 그리고 두 번째 요소부터 시작하여 각 값을 최소값과 최대값과 비교하고 그에 따라 업데이트합니다.
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다.
-
Arr[]
로 숫자가 있는 정수 배열을 사용합니다. -
getresult( int arr[],int n) 함수는 배열에 존재하는 최소값과 최대값을 찾는 것입니다. 비교.
-
요소가 하나만 있는 경우 변수 max 및 min을 arr[0] 으로 초기화합니다.
-
하나 이상의 요소에 대해 최대값은 arr[1]로, 최소값은 arr[0]으로 초기화합니다.
-
for 루프 내부는 세 번째 요소( i=2 )에서 마지막까지 순회 시작합니다.
-
이제 각 값( arr[i] )을 최소값 및 최대값과 비교할 것입니다. min보다 작으면 min을 arr[i]로 업데이트합니다. 최대값보다 크면 최대값을 arr[i]로 업데이트합니다.
-
결국 최대 및 최소 변수에 저장된 결과를 인쇄합니다.
예시
#include <stdio.h> #include <math.h> int getresult(int arr[], int n){ int min=0,max=0; /*If there is only one element then return it as min and max both*/ if (n == 1) { min=max=arr[0]; } /* If there are more than one elements, then initialize min and max*/ if (arr[0] > arr[1]){ max = arr[0]; min = arr[1]; } else{ max = arr[1]; min = arr[0]; } for (int i = 2; i<n; i++){ if (arr[i] > max) max = arr[i]; else if (arr[i] < min) min = arr[i]; } printf(" Minimum element: %d", min); printf(" Maximum element: %d", max); } /* Driver program to test above function */ int main(){ int arr[] = {200, 191, 112, -11, 330, 60}; int n = 6; getresult (arr, n); }
출력
위의 코드를 실행하면 다음과 같은 출력이 생성됩니다 -
Minimum element: -11 Maximum element: 330