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

Дан целочисленный массив из 200 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Напишите программу, которая выполняет выбраковку данных в массиве: 4) заменяет на 0 значения всех элементов, которые отличаются от среднего арифметического всех четных элементов более, чем на половину этого значения. Гарантируется, что хотя бы один чётный положительный элемент в массиве есть. Например, для исходного массива из восьми элементов:
6 1 6 10 11 7 2 9
программа должна вывести числа:
6 0 6 0 0 7 0 9

НА С++

Показать ответ
Ответ:
КоТоФеЙкА03
КоТоФеЙкА03
11.12.2020 10:01

#include <iostream>

#include <stdio.h> //Библиотека ввода/вывода из языка Си. Мне она нужна для printf()

#include <cstdlib> //Эта библиотека мне нужна для переключения на русский язык

#include <cmath> //Эта математическа библиотека нужна только для модуля

using namespace std;

int main()

{

   system("chcp 1251 > nul"); //подключаем русский язык

   int mas[200];

   double Sum_chisel = 0, Kolichestvo = 1, Polovina;

   mas[0] = 2; // Это наша гарантия того, что в массиве будет хотя бы один четный элемент

   Sum_chisel += mas[0]; // Сразу прибавляем в нужную переменную

   printf("mas[0]=%d \n", mas[0]); // Сразу ее пишем, чтобы не замарачиваться с этим в цикле

   for(int i = 1; i < 200; i++)

   {

       mas[i] = rand()%10000;//создаем рандомное число

       if (mas[i]%2 == 0 && mas[i]!=0) // Проверка на четность. Я не совсем понял, что делать с 0-ми. Так что сам подправишь

       {

           Sum_chisel += mas[i]; //Получаем сумму всех четных чисел

           Kolichestvo++; //записываем их кол-во

       }

       printf("mas[%d]=%d \n", i, mas[i]); //выводим в консоль. Думаю, что ты знаешь Си поэтому пишу так, ибо удобнее

   }

   cout << endl; //просто отступ, чтобы выглядело норм

   //Тут я пишу различну инфу. Ничего важного, так что можешь все удалить, кроме помеченного математических выражений

   cout << "Сумма всех четных значений: " << Sum_chisel << endl;

   cout << "Кол-во всех четных значений: " << Kolichestvo << endl;

   Sum_chisel = Sum_chisel/Kolichestvo; // Мне лень было объявлять новую переменную, поэтому записываю в старую новое значение - среднее арифметическое

   cout << "Среднее арифметичекое всех четных значений: " << Sum_chisel << endl;

   Polovina = Sum_chisel/2; //Ну это половина от среднего арифметического. Фактически эту переменную можно убрать, но компу будет проще один раз высчитать, чем высчитывать это 200 раз

   cout << "Половина от среднего арифметического: " << Polovina << endl;

   cout << endl; //Опять просто отступ

   for(int i = 0; i < 200; i++)

   {

       if(abs(mas[i]-Sum_chisel) > Polovina) mas[i] = 0; //Как работает: |значение_массива - среднее_ариф| и если значение этого выражения больше половины_среднего_ариф, то значение_массива = 0

       printf("mas[%d]=%d \n", i, mas[i]);

   }

   system("pause > nul"); //Чтобы консоль сразу не закрылась. В Code Blocks она не закроется, но при запуске exe-шника окно закроется

   return 0;

}

//вообще можно сделать лучше, но мне лень, сам догадаешься

0,0(0 оценок)
Популярные вопросы: Другие предметы
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота