Описать класс для хранения массива чисел - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д