Другие языки программирования и технологии

C#. Элементы одномерного массива размером 7, которые больше среднего значения элементов массива, заменить на 0.

Помогите пожалуйста написать программу на c#. Заранее спасибо!
Сам только учусь, поэтому так подробно расписал.
Постарался сделать максимально универсальным и подробным.
Количество элементов задаётся в консоли. Пункт 3 заполнения случайными числами можно заменить на ввод с консоли, подобно пункту 1.
Еще не научился оставлять в комментах, поэтому код может быть будет неправильно отображаться


using System;

namespace Massiv
{
class Program
{
static void Main(string[] args)
{
// 1. Количество элементов массива
Console.WriteLine("Ваедите количество элементов:");
int count = Convert.ToInt32(Console.ReadLine());

// 2. Создание массива
int[] massiv = new int[count];

// 3. Заполнение массива генератором случайных чисел
// 3.1 Создание объекта, для генерации случайных чисел
Random rnd = new Random();
// 3.2 Заполнение массива случайными числами и его показ на консоль
Console.WriteLine("Данные массива:");
for (int i = 0; i < massiv.Length; i++)
{
massiv[i] = rnd.Next(0, 100);
Console.WriteLine($"massiv[{i}] = {massiv[i]}");
}

// 4. Подсчет среднего арифметического значения массива
double srednee=0, summ=0;
// 4.1 Подсчет суммы массива
for (int i = 0; i < massiv.Length; i++)
{
summ += massiv[i];
}
// 4.2 Подсчет среднго, округление до сотых и его показ
srednee = Math.Round(summ / massiv.Length, 2);
Console.WriteLine($"Среднее значение массива = {srednee}");

// 5. Нахождение элементов > среднего, их обнуление и показ массива
Console.WriteLine("Обработанный массив");
for (int i = 0; i < massiv.Length; i++)
{
if (massiv[i] > srednee) { Console.WriteLine($"massiv[{i}] = 0 - обнулен, так как {massiv[i]}>{srednee} "); massiv[i] = 0; }
else Console.WriteLine($"massiv[{i}] = {massiv[i]}");
}
}
}
}
Михаил Егоров
Михаил Егоров
213
Лучший ответ
Паша Чернуха Большое вам, человеческое спасибо, правда!
Ещё возник такой вопрос, реально ли сделать так, чтобы элементы массива подбирались упорядоченно, к примеру, если первый 15, то следующие 16-17-18-19-20-21 ?
Михаил Егоров Ну если я правильно понял, что Вы хотите, то легко:
В пункте 3.2 нужно написать massiv[i] = i; вместо заполнения случайными числами. Тогда номер элемента и значение элемента будут совпадать.
Другое дело, если Вы хотите отсортировать имеющийся массив
u̴s̴i̴n̴g̴ ̴S̴y̴s̴t̴e̴m̴;̴
n̴a̴m̴e̴s̴p̴a̴c̴e̴ ̴t̴e̴s̴t̴c̴o̴n̴s̴o̴l̴e̴

 c̴l̴a̴s̴s̴ ̴P̴r̴o̴g̴r̴a̴m̴
 {̴
  p̴u̴b̴l̴i̴c̴ ̴s̴t̴a̴t̴i̴c̴ ̴v̴o̴i̴d̴ ̴M̴a̴i̴n̴(̴s̴t̴r̴i̴n̴g̴[̴]̴ ̴a̴r̴g̴s̴)̴
  {̴ 
   R̴a̴n̴d̴o̴m̴ ̴r̴a̴n̴d̴ ̴=̴ ̴n̴e̴w̴ ̴R̴a̴n̴d̴o̴m̴(̴)̴;̴
   i̴n̴t̴ ̴s̴ ̴=̴ ̴0̴;̴
   c̴o̴n̴s̴t̴ ̴i̴n̴t̴ ̴n̴ ̴=̴ ̴7̴;̴
   i̴n̴t̴ ̴[̴]̴ ̴a̴ ̴=̴ ̴n̴e̴w̴ ̴i̴n̴t̴[̴n̴]̴;̴
   f̴o̴r̴(̴i̴n̴t̴ ̴i̴ ̴=̴ ̴0̴;̴ ̴i̴ ̴<̴ ̴n̴;̴ ̴+̴+̴i̴)̴{̴
    a̴[̴i̴]̴ ̴=̴ ̴r̴a̴n̴d̴.̴N̴e̴x̴t̴(̴-̴5̴0̴,̴ ̴5̴0̴)̴;̴
    C̴o̴n̴s̴o̴l̴e̴.̴W̴r̴i̴t̴e̴(̴"̴{̴0̴,̴4̴}̴"̴,̴ ̴a̴[̴i̴]̴)̴;̴
    s̴ ̴+̴=̴ ̴a̴[̴i̴]̴;̴
   }̴
   C̴o̴n̴s̴o̴l̴e̴.̴W̴r̴i̴t̴e̴L̴i̴n̴e̴(̴"̴\̴n̴С̴р̴е̴д̴н̴е̴е̴ ̴а̴р̴и̴ф̴м̴е̴т̴и̴ч̴е̴с̴к̴о̴е̴:̴ ̴"̴ ̴+̴ ̴s̴ ̴/̴ ̴n̴)̴;̴
   f̴o̴r̴(̴i̴n̴t̴ ̴i̴ ̴=̴ ̴0̴;̴ ̴i̴ ̴<̴ ̴n̴;̴ ̴+̴+̴i̴)̴{̴
    i̴f̴ ̴(̴a̴[̴i̴]̴ ̴<̴ ̴s̴ ̴/̴ ̴n̴)̴
     a̴[̴i̴]̴ ̴=̴ ̴0̴;̴
    C̴o̴n̴s̴o̴l̴e̴.̴W̴r̴i̴t̴e̴(̴"̴{̴0̴,̴4̴}̴"̴,̴ ̴a̴[̴i̴]̴)̴;̴
   }̴
   C̴o̴n̴s̴o̴l̴e̴.̴R̴e̴a̴d̴K̴e̴y̴(̴t̴r̴u̴e̴)̴;̴
  }̴
 }̴
Василий Колесник Где это так сделать можно?
double avg = a.Avg();
a = (from x in a select x>avg?0:x).ToArray();
Pavel Aleksandrovich Мощно )
Только там Average(), а не Avg()

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