Надо найти минимальное положительное трёхзначное число, которое не оканчивается на 4. Выводит всегда "NO". Где ошибка? #include using namespace std; #define N 5 int main() { long a[N]; long i, j, k, min; for (i=0; i<N; i++) cin >> a[i]; min = 10000; if (a[i] > 99 && a[i] < 1000 && a[i] > 0 && a[i] % 10 != 4 && a[i] < min ){ min = a[i];cout << min << endl; } else cout << "NO" << endl; }
Ошибка в том, что переменная min объявлена за пределами цикла for, инициализирована значением 10000, и каждая проверка на условия происходит внутри цикла. Однако, после выхода из цикла значение min не обновляется, поэтому в конечном итоге оно остается равным 10000, и программа всегда выводит "NO". Для исправления этой ошибки необходимо переместить объявление переменной min внутрь цикла for перед началом итераций и добавить проверку значения min после цикла для вывода минимального подходящего числа.
Ошибка в том, что переменная min объявлена за пределами цикла for, инициализирована значением 10000, и каждая проверка на условия происходит внутри цикла. Однако, после выхода из цикла значение min не обновляется, поэтому в конечном итоге оно остается равным 10000, и программа всегда выводит "NO".
Для исправления этой ошибки необходимо переместить объявление переменной min внутрь цикла for перед началом итераций и добавить проверку значения min после цикла для вывода минимального подходящего числа.