Предмет: Информатика, автор: klaybackoriginal

C++ Помогите, где ошибка, вроде все должно быть нормально.
#include
using namespace std;
int main() {
int n, maxi = 0, mini = 0;
cin >> n;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
if (i == 1) {
mini = x;
}
if ((i == n - 1 || i == n - 2) && x % 2 == 1) {
maxi = x;
}
}
cout << mini << " " << maxi;
return 0;
}
Дана последовательность из n чисел. Гарантируется, что в последовательности есть и чётные, и нечётные числа.

Входные данные

В первой строке целое число n: 1 <= n <= 100. Во второй строке n целых чисел от 1 до 100.

Выходные данные

Выведите сначала минимальное чётное число, а затем максимальное нечётное.

Примеры
входные данные
5
1 2 3 4 5
выходные данные
2 5
входные данные
2
1 2
выходные данные
2 1


klaybackoriginal: #include
using namespace std;
int main() {
int n, maxi = 0, mini = 0;
cin >> n;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
if (i == 1) {
mini = x;
}
if ((i == n - 1 || i == n - 2) && x % 2 == 1) {
maxi = x;
}
}
cout << mini << " " << maxi;
return 0;
}
lozromanik: код к задаче?

Ответы

Автор ответа: femaolya
1

логика кода супер странная. У тебя минимальное число всегда второе в последовательности, а максимальное либо предпоследнее либо последнее. У тебя зависимость не от самого числа идет, а от его позиции, что в корне неверно


lozromanik: там если что ошибка от инициализации
femaolya: да там ошибка в том, кто перед компом сидит) А вообще да, в инициализации mini и maxi есть косяк, но он не влияет на выполнение кода по его логике, а логика полный бред, поэтому, в первую очередь, ошибка именно в логике
lozromanik: это да, но не стоит так агрится, проще исправить, чем дизморалить
Похожие вопросы