C/C++

Помогите с программой на с++ на массивы

Надо ввести количество элементов в массиве и сами элементы массива а вывести только самое большое четное число и самое маленькое нечетное
#include
#include

int main()
{
int N=0;
cout << "Введите количество элементов ";
cin >> N;
int arr[N];
cout << "Введите элементы массива";
for(int i=0; i> arr[i];

vector arrE; // массив четных чисел
vector arrO; // массив нечетных чисел
for(int i=0; i 0 )
{
int N = arrE.at(0);
for( int i=0; i<(arrE.size()-1); i++ )
{
if( arrE.at(i+1) > arrE.at(i) )
N = arrE.at(i+1);
}
cout << "Максимальное четное = " << N;
}
else
cout << "Нет четных чисел";
// Ищем самое маленькое нечетное
if( arrO.size() > 0 )
{
int n = arrO.at(0);
for( int i=0; i<(arrO.size()-1); i++ )
{
if( arrO.at(i+1) < arrO.at(i) )
n = arrO.at(i+1);
}
cout << "Минимальное нечетное = " << n;
}
else
cout << "Нет нечетных чисел";
}
Вячаслав Севергин
Вячаслав Севергин
461
Лучший ответ
Вячаслав Севергин Если нельзя использовать вектор, то придется изголяться с массивом и завести переменные, где будут храниться количество элементов массива.
//условий на то, что в массиве не будет нужных нам чисел я не делал.
#include

int main() {
using namespace std;
setlocale(LC_ALL, "ru");
int16_t size, max, min;
cout << "Введите кол-во елементов в массиве: " << endl;
cin >> size;
int16_t *arr = new int16_t[size];
for (int16_t i = 0; i < size; i++)
{
cin >> arr[i];
}
max = min = arr[0];
for (int16_t i = 0; i < size; i++)
{
if ((!(arr[i] % 2)) && (arr[i] > max))
max = arr[i];
else if (((arr[i] % 2)) && (arr[i] < min))
min = arr[i];
}
cout << "макс. четное число: " << max << endl;
cout << "мин. нечетное число: " << min << endl;
return 0;
}
ЮК
Юрий Ким
195