Как найти второй положительный элемент массива? - C#

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

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

В лабе требуется найти произведение элементов массива с чётными номерами записать на место второго положительного элемента. Как найти второй положительный элемент?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace laba2_mass
{
    class Program
    {
        public const int n = 10;
 
        public static void Main()
        {
            int[] a = new int[n];
            int i, idx1 = 0, idx2 = 0, p = 1;
 
            Console.WriteLine("Массив");
 
            Random rand = new Random();
            for (i = 0; i < n; i++)
            {
                a[i] = rand.Next(-10, 10);
 
                Console.Write(a[i] + " ");
            }
 
            Console.WriteLine();
            Console.WriteLine();
 
            //============================//
 
            for (i = 0; i < n; i++)
            {
                if(i == 1 || i == 3 || i == 5 || i == 7 || i == 9)
                    p *= a[i];
            }
 
            Console.WriteLine("p = " + p + "\n");
 
            //============================//
 
            for (i = 0; i < n; i++)
            {
                if (a[i] > 0)
                {
                    if (idx1 == 0)
                    {
                        idx1 = i;
                    }
 
                    if (idx1 < i)
                    {
                        idx2 = i;
                    }
                }
            }
 
            Console.WriteLine("a[idx1] = " + a[idx1] + "\n");
 
            Console.WriteLine("idx1 = " + idx1 + "\n");
 
            Console.WriteLine("a[idx2] = " + a[idx2] + "\n");
 
            Console.WriteLine("idx2 = " + idx2 + "\n");
 
            //===========================//
 
            for (i = 0; i < n; i++)
            {
                if (i == idx2)
                {
                    a[idx2] = p;
                }
 
                Console.Write(a[i] + " ");
            }
 
            Console.WriteLine();
 
            Console.ReadKey();
        }
    }
}
P.S. В этом коде оно записывает произведение вместо последнего положительного

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

textual
Листинг программы
int multiplication =1;
            int wtf = 0;
            int[] massiv = new int[10];
            Random rnd = new Random();
            bool a = false;
            bool b = true;//если начинаем с четного элемента
            for (int i = 0; i < massiv.Length; i++)
            {                
                massiv[i] = rnd.Next(-10, 10);
                if (massiv[i] > 0 && a == true)
                    wtf = i;
                if (massiv[i] > 0)
                    a = true;
                if(b){
                    multiplication *= massiv[i];
                    b=false;}
                else
                    b=!b;  
            }
            
                massiv[wtf] = multiplication;
            Console.WriteLine("2 положительный элемент  массива = {0}",massiv[2]);
//Кривовато, но пишет вместо второго. А вообще генерация нуля все портит.

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


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

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

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