Нужно обратиться к элементу только один раз, чтобы его заменить на ближайший больший - C#
Формулировка задачи:
В масcиве А размера N за один просмотр необходимо каждый элемент заменить на ближайший следующий за ним элемент, который больше его. Если такого элемента нет, то заменить его на ноль. Можно использовать дополнительную память.
Помогите составить алгоритм, всмысле помогите мне связными приложениями, либо своими рассуждениями и предположениями по разработке данной программы =)
А я уж как-нибудь сам набросаю =)
Решение задачи: «Нужно обратиться к элементу только один раз, чтобы его заменить на ближайший больший»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ArleTask { class Program { static void Main(string[] args) { Console.Write("Введите длинну массива: "); int n= Convert.ToInt32(Console.ReadLine()); int[] a = new int[n]; for (int i = 0; i < n; i++) //Просто вводим данные массива { Console.Write("Число " + (i + 1) + ": "); a[i] = Convert.ToInt32(Console.ReadLine()); } List<int> Memory = new List<int>(); int MemoryLength = 0; Memory.Add(a[a.Length-1]); for (int q = a.Length - 2; q >= 0; q--) { if (a[q] < Memory[MemoryLength]) { a[q] = Memory[MemoryLength]; } //Сам процесс else { if (a[q] > Memory[MemoryLength]) { Memory.Add(a[q]); MemoryLength++; a[q] = 0; } } } for (int w = 0; w < a.Length; w++) { Console.Write(a[w] + " "); //Выводим новый массив } Console.WriteLine("Самое большое число:"); Console.WriteLine(Memory[MemoryLength]); //Самлое большое число Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д