Вопрос задан 24.07.2023 в 06:05. Предмет Информатика. Спрашивает Бразгун Алеся.

Скажите пожалуйста почему не работает код C++ должно выводить наименьший четный элемент массива,

если такого нет, то выведите первый элемент.  #include using namespace std; int main() { cout<<"Vedit 10 elementiv:"; const int SIZE=10; int arr[SIZE]; int min; for (int i = 0; i < SIZE; i+=1) { arr[i]=rand()%60; } for (int i = 0; i < SIZE; i+=1) { cout << arr[i]<<' '; } for (int i = 0; i < SIZE; i+=1) { if (i == 0){ min = arr[i];} else if (arr[i] < min) min = arr[i]; } cout << "Minimalnui element(chetnui): " << min << std::endl; return 0; }
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Тюш Ксюша.

вам сначала нужно проверить, а элемент массива вообще является четным или нет

if(arr[i] % 2 == 0) {

   if(arr[i] < min) min = arr[i];

}

А еще поправочка.

объявите до цикла min, чтобы там не было ветвления.

т.е. min = arr[0]; а уже потом цикл for

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Проблема в вашем коде C++ заключается в том, что вы не проверяете четность элементов массива, и поэтому ваш код выводит просто минимальный элемент, а не минимальный четный элемент массива.

Чтобы исправить это, вам нужно внести некоторые изменения. Вот исправленный код:

cpp
#include <iostream> using namespace std; int main() { cout << "Vedit 10 elementiv:"; const int SIZE = 10; int arr[SIZE]; int min = -1; // Инициализируем min значением -1, чтобы отличить от реальных элементов массива for (int i = 0; i < SIZE; i++) { arr[i] = rand() % 60; } for (int i = 0; i < SIZE; i++) { cout << arr[i] << ' '; } for (int i = 0; i < SIZE; i++) { if (arr[i] % 2 == 0) { // Проверяем четность элемента if (min == -1) { min = arr[i]; } else if (arr[i] < min) { min = arr[i]; } } } // Если min остался -1, значит четных элементов не было, выводим первый элемент массива if (min == -1) { min = arr[0]; } cout << "Minimalnui element(chetnui): " << min << endl; return 0; }

В этом исправленном коде мы добавили проверку четности элементов с помощью операции остатка %. Если элемент делится нацело на 2 (остаток равен 0), значит он четный. Если вы найдете хотя бы один четный элемент, установим его в качестве минимального значения. Если в массиве нет четных элементов, выводим первый элемент в качестве минимального значения.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос