Обэмэ
Мудрец
(16949)
3 года назад
У тебя при вводе s идёт метод if, но нет else. Ты вводишь (и тем самым присваиваешь) к s новое значение и,даже если в конструкции if оно не делится на цело, ты все равно присваиваешь к min значение s. Добавь сравнение s с min после if
Николай Веселуха
Высший разум
(383378)
3 года назад
#include <iostream>
using namespace std;
int main() {
const auto lim = numeric_limits<int>::max();
size_t n;
cin >> n;
puts("");
auto min = lim;
int x;
while (n) {
cin >> x;
if ((~x & 1) && x < min) min = x;
--n;
}
puts("");
if (min != lim) cout << min << '\n';
else puts("Not found!");
}
Сергей
Гений
(60494)
3 года назад
В вашей программе нет проверки очередного найденного числа на минимальность. Добавьте его.
Да и нет смысла хранить число циклов N, поэтому счетчик можно организовать прямо на нем, не вводя переменную i.
while (N) {
cin >> s;
if (s % 2 == 0) {
min = s<min?s:min; // если s<min то min = s иначе min без изменения
}
N--;
}
int N, s, i=0, min=30001;
cin >> N;
while(N>i){
cin >> s;
if(s % 2 == 0){
min=s;
}
i++;
}
cout << min;
return 0;
}
Данные для ввода:
4
3
20
6
8