В упорядоченную последовательность включить заданное число так, чтобы упорядоченность не нарушилась - C#
Формулировка задачи:
Добавить условие заполнение массива
Задание :
В упорядоченную по возрастанию последовательность из целых
чисел включить заданное число так, чтобы упорядоченность не нарушилась
после ввода проверяю ввожу массив 23456
записываем число в массив 1
получается массив 213456, а должно 123456.
Какое условие добавить или как переписать?
Вот сам код программы:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Udin { class Program { static void Main(string[] args)//мейн { int N, Ch, poz;//N - размер массива Ch- число, poz - его поизция Console.WriteLine("Введите размер массива");//просим ввести размер массива N = Convert.ToInt32(Console.ReadLine());//вводим размер массива int[] arr = new int[N + 1];//создаем массив for (int i = 0; i < N; i++)//идем в цикле { Console.WriteLine("Введите элемент массива[{0}]:", i + 1);//просим ввести элемент массива arr[i] = Convert.ToInt32(Console.ReadLine());//вводим элемент массива } Console.WriteLine("Введите число для вставки: ");//просим ввести число Ch = Convert.ToInt32(Console.ReadLine());//вводим число, которое вставляем Console.WriteLine("Ваш массив:");// for (int i = 0; i < N; i++)//идем в цикле { Console.Write(arr[i] + " ");//выводим массив на экран } poz = 0;//обнуляем позицию for (int i = 0; i < N; i++)//идем в цикле { if (arr[i] < Ch)//если текущий элемент меньше нашего числа poz = i;//запоминаем его поизцию } for (int i = N; i > poz + 1; i--)//идем в цикле и двигаем массив вправо на 1 элемент, освобождая место для вставки { arr[i] = arr[i - 1];// } arr[poz + 1] = Ch;//вставляем наш элемент на его позицию Console.WriteLine("\nВаш массив:");//идем в цикле for (int i = 0; i < N + 1; i++)// { Console.Write(arr[i] + " ");//выводим массив на экран } Console.ReadKey();//чтобы не закрывалась консоль } } }
Решение задачи: «В упорядоченную последовательность включить заданное число так, чтобы упорядоченность не нарушилась»
textual
Листинг программы
poz = 0;//обнуляем позицию for(int i = 0; i < N; i++)//идем в цикле { if(arr[i] < Ch) //если текущий элемент меньше нашего числа poz = i + 1; //Изменил } for(int i = N; i > poz; i--)//Изменил { arr[i] = arr[i - 1];// } arr[poz] = Ch;//Изменил
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д