Надо найти минимальное положительное трёхзначное число, которое не оканчивается на 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;
}

6 Окт 2019 в 09:43
224 +1
0
Ответы
1

Ошибка в том, что переменная min объявлена за пределами цикла for, инициализирована значением 10000, и каждая проверка на условия происходит внутри цикла. Однако, после выхода из цикла значение min не обновляется, поэтому в конечном итоге оно остается равным 10000, и программа всегда выводит "NO".
Для исправления этой ошибки необходимо переместить объявление переменной min внутрь цикла for перед началом итераций и добавить проверку значения min после цикла для вывода минимального подходящего числа.

19 Апр в 13:55
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 829 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир