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

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


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

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

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