모두가 아닌 최대
입력한 모든 숫자 중에서 최대값(최소값)을 찾아야 하는 경우가 아니라 특정 조건을 만족하는 숫자 중에서 최대값(최소값)을 찾아야 하는 경우 최대값의 초기값으로 취하는 첫 번째 숫자를 고려해야 합니다. (최소)가 항상 우리의 요구 사항을 충족하지는 않습니다.
예를 들어 최대 음수를 찾는 경우 데이터 세트는 다음과 같습니다.
\(\{5, -2, 4, 2, -1, -3\}\ ) 우리는 최대 값의 초기 값에서 숫자 5를 얻을 것이며 양수이고 음수보다 큽니다. 따라서 조건
X > M
는 항상 거짓입니다.
따라서 이전 문제의 알고리즘에 음수에 대한 검사를 한 번만 추가하는 것으로는 충분하지 않으며 첫 번째 숫자가 요구 조건을 충족하지 않을 수 있다는 사실(이 경우 음수가 될 수 있음)도 고려해야 합니다. ).
루프 내부에 다음 조건을 추가하여 이 문제를 해결할 수 있습니다.
의사 코드
<예비>
X가 음수이면
M >= 0 또는 M < 엑스, 그럼
엠=엑스
지정된 코드에서
M >= 0
조건을 사용하면
M
변수는 처음에 나머지보다 분명히 큰 값을 포함합니다(예제에서 값은 5와 같음).
또한 숫자의 범위가 알려진 경우 지정된 범위의 최소(최대) 숫자를 최대(최소)의 초기 값으로 사용할 수 있습니다.