Описать класс для хранения массива чисел - C# (179933)

Узнай цену своей работы

Формулировка задачи:

Описать класс для хранения массива чисел. Перегрузить в классе оператор ++, который должен увеличивать каждый положительный элемент массива на 2, каждый отрицательный элемент массива заменить средним арифметическим максимального и минимального элементов. Ребят выручайте горит лаба, мыслей по реализации нету,заранее благодарю

Решение задачи: «Описать класс для хранения массива чисел»

textual
Листинг программы
using System;
using System.Linq;
using System.Collections.Generic;
 
class MyArray
{
    private int[] array;
    private int avgMinMax;
    private bool avgMinMaxIsObsolete;
 
    public MyArray(IEnumerable<int> en)
    {
        array = en.ToArray();
        avgMinMaxIsObsolete = true;
    }
 
    private int AvgMinMax
    {
        get
        {
            if (avgMinMaxIsObsolete)
            {
                avgMinMax = (array.Min() + array.Max()) / 2;
                avgMinMaxIsObsolete = false;
            }
            return avgMinMax;
        }
    }
 
    public static MyArray operator++(MyArray myArray)
    {
        for (int i = 0; i < myArray.array.Length; i++)
        {
            int elem = myArray.array[i];
            elem = elem < 0 ? myArray.AvgMinMax : elem + 2;
            myArray.array[i] = elem;
        }
        myArray.avgMinMaxIsObsolete = true;
        return myArray;
    }
 
    public override string ToString()
    {
        return String.Join(", ", array);
    }
}
 
class Program
{
    public static void Main()
    {
        MyArray myArray = new MyArray(Enumerable.Repeat(new Random(), 20).Select(r => r.Next(-100, 101)));
        Console.WriteLine(myArray);
        myArray++;
        Console.WriteLine(myArray);
        myArray++;
        Console.WriteLine(myArray);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы