Вставить число перед всеми отрицательными элементами: исправить код - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д