Я не понимаю как if находит минимальное и максимально число в массиве

    int i, min_val, max_val;
    int nums[10];
    
    nums[0] = 10;
    nums[1] = 18;
    nums[2] = 75;
    nums[3] = 0;
    nums[4] = 1;
    nums[5] = 56;
    nums[6] = 100;
    nums[7] = 12;
    nums[8] = -19;
    nums[9] = 88;
    
    min_val = max_val = nums[0];
    for(i = 1; i < 10; i++){
        if (nums[i] < min_val) min_val = nums[i];
        if (nums[i] > max_val) max_val = nums[i];
}

В этом коде ,я так понял min_val , max_val берут значение 10. Как if находит именное самое маленькое и самое большое число если условие < 10 или > 10? if (nums[i] < min_val) min_val = nums[i] и if (nums[i] > max_val) max_val = nums[i]


Ответы (1 шт):

Автор решения: Harry

Буквально построчно:

for(i = 1; i < 10; i++){     // Для всех (оставшихся) значений массива

if (nums[i] < min_val) min_val = nums[i];

Если очередное значение меньше запомненного минимального (до настоящего времени) - то теперь минимальным становится это исследованное значение. Если нет - ничего не меняем.

if (nums[i] > max_val) max_val = nums[i];

Если очередное значение элемента массива больше запомненного максимального (до настоящего времени) - то теперь максимальным становится это исследованное значение. Если нет - ничего не меняем.

Может, так станет понятнее (попробуйте сами с карандашом и бумажкой):

i          1    2    3    4    5     6     7   ...
num        18   75   0    1   56   100    12   ...
min  10    10   10   0    0    0     0     0
max  10    18   75  75   75   75   100   100
→ Ссылка