
Вопрос задан 26.10.2023 в 20:23.
Предмет Информатика.
Спрашивает Карелина Милена.
Надо найти минимальное положительное трёхзначное число, которое не оканчивается на 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 = 10000;
Вывод результата нужно вынести за пределы цикла, т.к. пока цикл не проверил все числа массива, результат не получен!
Если числа подходящего под условие не найдено, то переменная min как была равна 10000, так и останется равно этому значению, так что по окончанию цикла можно просто проверить, если min=10000, то результат отрицательный, и вывести NO, иначе вывести значение переменной min.
...
min = 10000;
for (i=0; i<N; i++)
if (a[i] > 99 && a[i] < 1000 && a[i] > 0 && a[i] % 10 != 4 && a[i] < min)
{min = a[i];}
if (min=10000) {cout << "NO" << end;}
else cout << min << end;
Нужно открыть цикл снова сразу после строки
min = 10000;
Вывод результата нужно вынести за пределы цикла, т.к. пока цикл не проверил все числа массива, результат не получен!
Если числа подходящего под условие не найдено, то переменная min как была равна 10000, так и останется равно этому значению, так что по окончанию цикла можно просто проверить, если min=10000, то результат отрицательный, и вывести NO, иначе вывести значение переменной min.
...
min = 10000;
for (i=0; i<N; i++)
if (a[i] > 99 && a[i] < 1000 && a[i] > 0 && a[i] % 10 != 4 && a[i] < min)
{min = a[i];}
if (min=10000) {cout << "NO" << end;}
else cout << min << end;



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Проблема в вашем коде заключается в том, что вы используете переменную i
вне цикла for, где она не определена. Это приводит к ошибке компиляции. Помимо этого, вы используете a[i]
вне цикла, где i
также не определена.
Чтобы найти минимальное положительное трехзначное число, которое не оканчивается на 4, вы можете использовать следующий код:
cpp#include <iostream>
using namespace std;
int main() {
int min = 1000; // Инициализируем переменную min большим значением
for (int i = 100; i < 1000; i++) {
if (i % 10 != 4) { // Проверяем, что число не оканчивается на 4
min = i; // Если условие выполняется, обновляем минимум
break; // Прерываем цикл, так как нам нужно только минимальное значение
}
}
if (min < 1000) {
cout << min << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
Этот код итерирует через трехзначные числа, начиная с 100, и находит первое число, которое не оканчивается на 4. Если такое число найдено, оно становится минимальным трехзначным числом, и цикл прерывается. Если ни одно такое число не найдено, выводится "NO".


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili