Вставить число перед всеми отрицательными элементами: исправить код - C#

Узнай цену своей работы

Формулировка задачи:

Вставить число k перед всеми отрицательными элементами. Когда ввожу размер массива, все норм. Проблема начинается когда я ввожу число которое нужно заменить по условию, и размер массива сразу на один элемент меньше становится.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите количество элементов массива: ");
            Random Ran = new Random();
            int size = Convert.ToInt32(Console.ReadLine());
            int[] a = new int[size];
            Console.WriteLine("Введитете элемент который нужно вставить перед отрицательными числами");
            int k1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Исходный массив: ");
            for (int i = 0; i < size; i++)
            {
                a[i] = Ran.Next(-5, 5);
         
                Console.Write("\t{0}", a[i]);
            }
            Console.WriteLine("");
            Console.WriteLine("Итоговый массив: ");
            
            for (int i = 0; i < size; i++)
            {
                if (a[i + 1] < 0)
                {
                    a[i] = k1;
                }
                Console.Write("\t{0}", a[i]);
            }
            Console.ReadKey();
        }
    }
}

Решение задачи: «Вставить число перед всеми отрицательными элементами: исправить код»

textual
Листинг программы
        static int[] NewMass(int[] a, int pVal)
        {
            int newSize = 0,
                itr = 0;
 
            foreach (int e in a)
                if (e < 0) newSize++;
 
            int[] newMas = new int[a.Length + newSize];
 
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] < 0)
                {
                    newMas[itr] = pVal;
                    newMas[++itr] = a[i];
                }
                else
                    newMas[itr] = a[i];
 
                itr++;
            }
 
            return newMas;
        }

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


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

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

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