Va rog am nevoie de ajutor !!
Avem urmatorul sir:
int[] array = {12, 0, -22, 0, 43, 545, -4, -55, 12, 43, 0, -999, -87}

Trebuie să se facă două şiruri, unul pentru stocarea elementelor pozitive și celălalt pentru elementele negative ale şirului array, și logica necesară care va efectua extragerea elementelor corespunzătoare şi plasarea lor în şirul adecvat. Elementele egale cu zero nu trebuie introduse în şirurile rezultate.

Cu alte cuvinte, din şirul array care este dat trebuie să se extragă toate elementele pozitive și să fie puse într-un şir separat. De asemenea, trebuie să se extragă toate elementele negative și să fie puse într-un şir separat.

De asemenea, trebuie să se determine numărul de repetiţii pentru fiecare număr din şirul iniţial care se repetă de două sau de mai multe ori. În acest caz, trebuie numărate şi elementele egale cu zero. Astfel, pentru fiecare valoare a unui element care se repetă trebuie afişată valoarea respectivă, împreună cu numărul de repetiţii.

Desigur, este necesar ca funcționalitatea scrisă să fie aplicabilă pe orice şir cu valori întregi, nu doar în acest exemplu concret.

Răspuns :

Răspuns:

using System;

namespace PozNeg

{

   class Program

   {

       static void Main(string[] args)

       {

           Console.WriteLine("Cate elemente are sirul?");

           int n = Convert.ToInt32(Console.ReadLine());

           Console.WriteLine("Care sunt elementele sirului?");

           int[] array = new int[n];

           for(int i = 0; i < n; i++)

               array[i] = Convert.ToInt32(Console.ReadLine());

           int poz = 0;

           int neg = 0;

           for (int i = 0; i < n; i++)

           {

               if (array[i] > 0)

                   poz++;

               if (array[i] < 0)

                   neg++;

           }

           int[] pozArray = new int[poz];

           int[] negArray = new int[neg];

           int k = 0;

           int p = 0;

           for(int i = 0; i < n; i++)

           {

               if(array[i] > 0)

               {

                   pozArray[k] = array[i];

                   k++;

               }

               if(array[i] < 0)

               {

                   negArray[p] = array[i];

                   p++;

               }

           }

           Console.WriteLine("Elementele pozitive sunt:");

           foreach(int item in pozArray)

               Console.Write($"{item} ");

           Console.WriteLine();

           Console.WriteLine("Elementele negative sunt:");

           foreach (int item in negArray)

               Console.Write($"{item} ");

           Console.WriteLine();

           int contor;

           for(int i = 0; i < n - 1; i++)

           {

               contor = 1;

               for (int j = i + 1; j < n; j++)

               {

                   if (array[i] == array[j] && array[i] != int.MaxValue)

                   {

                       contor++;

                       array[j] = int.MaxValue;

                   }

                       

               }

               if(contor != 1)

               {

                   Console.WriteLine($"Elementul {array[i]} se repeta de {contor} ori.");

               }

                   

           }

               

       }

   }

}

Explicație:

Ai aici tot programul functional in C#.