В упорядоченную последовательность включить заданное число так, чтобы упорядоченность не нарушилась - 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;//Изменил