Убрать нули при разделении массива на положительные и отрицательные числа - C#

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

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

Дан массив A размера N. Сформировать два новых массива B и C: в массив B записать все положительные элементы массива A, в массив C — все отрицательные (сохраняя исходный порядок следования элементов). Вывести вначале размер и содержимое массива B, а затем — размер и содержимое массива C.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
 
            int i,N,C,d;
            
            Console.WriteLine("Введите число элементов массива - А");
 
            N = Convert.ToInt32(Console.ReadLine());                                //1 массив
            int[] massive1 = new int[N]; //вводим массив
            for (i = 0; i < N; i++) // вводим элементы массив
            {
                Console.WriteLine("Введите {0}-й элемент массива", i);
 
                massive1[i] = Convert.ToInt32(Console.ReadLine());
 
            }
            Console.WriteLine("Элементы массива - В ");
            int[] massive2 = new int[N]; //вводим                            // 2 
            for (i = 0; i < N; i++) // вводим элементы массив
            {
                if (massive1[i] > 0) massive2[i] = massive1[i]; // Проверка положительных элементов
 
                Console.WriteLine("Элемент: {0}", massive2[i]); //вывод элементов нового массива
 
                }
            
            d = massive2.Length;
            Console.WriteLine("Размер массива - В равен= {0}", d); //вывод размера

            Console.WriteLine("Элементы массива - C");
                int[] massive3 = new int[N]; //вводим массив
                for (i = 0; i < N; i++) //вывод всех элементов массива
                {
                    if (massive1[i] < 0) massive3[i] = massive1[i]; // Проверка отрицательных элементов
                    Console.WriteLine("Элемент: {0}", massive3[i]); //вывод элементов нового массива

                }
                C = massive3.Length;
                Console.WriteLine("Размер массива - C равен= {0}", C); //вывод размера
            
            Console.ReadKey();
 
        }
    }
}
Думаю, проблему видно по 2 скрину. Не могу убрать лишние нули,возможно, нужно было использовать foreach, но не могу понять принцип его действия.

Решение задачи: «Убрать нули при разделении массива на положительные и отрицательные числа»

textual
Листинг программы
using System;
class Program
{
    static void Main()
    {
        Console.Write("длина массива 'A' : ");
        int[] A = new int[int.Parse(Console.ReadLine())];
        int[] B = new int[A.Length];
        int[] C = new int[A.Length];
        int b = 0, c = 0;
        for (int i = 0; i < A.Length; i++)
        {
            Console.Write("A[{0}] = ", i);
            A[i] = int.Parse(Console.ReadLine());
            if (A[i] > 0)
                B[b++] = A[i];
            else if (A[i] < 0) C[c++] = A[i];
        }
        Console.WriteLine();
        for (int i = 0; i < b; i++) Console.WriteLine("B[{0}] = " + B[i], i);
        Console.WriteLine();
        for (int i = 0; i < c; i++) Console.WriteLine("C[{0}] = " + C[i], i);
        Console.WriteLine();
        Console.ReadKey();
    }
}

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


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

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

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