Поиск в массиве. Ошибка "Оператор "&&" не может применяться к операндам типа "bool" и "double"" - C#

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

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

Найти номер последнего минимального элемента среди положительных четных элементов, лежащих правее первого отрицательного элемента. В 24 строке :Ошибка 3 Оператор "&&" не может применяться к операндам типа "bool" и "double" , я почему-то думал что вопрос можно решить банально скобками, но...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _6
{
    class Program
    {
        static void Main(string[] args)
        {
            bool b = false;
            string s;
            int min = -1;
            Console.WriteLine("Qty of elements");
            s = Console.ReadLine();
            int n = int.Parse(s);
            double[] a = new double[n];
            Console.WriteLine("Enter the number: ");
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] < 0) b = true;
                if ((b == true)&&(a[i] > 0) && (a[i] % 2) && (a[min] > a[i])) min = i;
            }
            Console.WriteLine("минимальный элемент массива {0} /t его номер {1}", a[min], min);
        }
    }
}

Решение задачи: «Поиск в массиве. Ошибка "Оператор "&&" не может применяться к операндам типа "bool" и "double""»

textual
Листинг программы
using System;
 
namespace _2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] a = { 1, 4, 7, -6, 0, -3, 8, -5, 1, 4, 0, 2, -2 };
            int firstNegativeIndex = Array.FindIndex(a, x => x < 0);
            if (firstNegativeIndex < 0)
            {
                Console.WriteLine("Нет отрицательных элементов!");
                return;
            }
            if (firstNegativeIndex == a.Length - 1)
            {
                Console.WriteLine("Нет элементов после первого отрицательного!");
                return;
            }
            int minIndex = Array.FindIndex(a, firstNegativeIndex + 1, x => (x > 0 && x%2==0));
            if (minIndex < 0)
            {
                Console.WriteLine("Нет четных положительных элементов после первого отрицательного!");
                return;
            }
            for (int i = minIndex+1; i < a.Length; i++)
            {
                if (a[i] <= a[minIndex] && a[i] > 0 && a[i]%2==0)
                    minIndex = i;
            }
            Console.WriteLine("Это номер: " + minIndex);
        }
    }
}

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


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

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

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