Программа не считает номер второго отрицательного элемента, и сумму элементов - C#

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

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

Помогите пожалуйста, код вроде правильный, но программа не считает номер второго отрицательного элемента, и сумму элементов. Вот код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Mass
{
    class Program
    {
       // private static double count;
 
        static void Main(string[] args)
        {
          //  Random rnd = new Random();
            Console.Write("Введите размер массива ");
            int N = int.Parse(Console.ReadLine());
            double[] Mass = new double[N];
 
            //Заполняем массив
 
            //   Console.WriteLine("Выберите ручной или автоматический вариант заполнения массива");
            //   Console.WriteLine(" 1 - Ручной ввод\n 2 - Автоматический ввод");
            //   swVVOD:
            // int vvod = int.Parse(Console.ReadLine());
            //   switch (vvod)
            //    {
            //    case 1:
            //   {
            // Console.Write("Введите элементы массива\n\n");
            // for (int i = 0; i < N; i++)
            //{
            // Mass[i] = double.Parse(Console.ReadLine());
           
                Console.WriteLine("Введіть значення елементів масиву");
                    for (int i = 0; i < Mass.Length; i++)
                {
                    Console.Write("Mass[{0}] = ", i);
                    Mass[i] = Convert.ToDouble(Console.ReadLine());
                }
 
            // Контрольне виведення масиву
            Console.WriteLine("Вихідний масив:");
            for (int i = 0; i < Mass.Length; i++)
            {
                Console.Write("{0} ", Mass[i]);
            }
            Console.WriteLine(); // переведення рядка

            //    break;
            //      }
            /*    case 2:
                    {
                        Console.Write("\nИсходный массив\n\n");
                        for (int i = 0; i < N; i++)
                        {
                            Mass[i] = (double)(rnd.NextDouble() * rnd.Next(-10, 5));
                            Console.Write("{0} ", Mass[i]);
                        }
                        break;
                    }
            }
            //Console.Write("\nИсходный массив\n\n");
 
            //Вычисляем сумму элементов массива с нечетными номерами
 
            double nechetSum = 0;
            for (int i = 1; i < Mass.Length; i++)
            {
                if (Mass[i] % 2 != 0)
 
                    nechetSum += Mass[i];
            }
            Console.WriteLine("\n\nСумма нечетных элементов = {0}", nechetSum.ToString());
*/
            //Вычисляем сумму элементов массива между крайними отрицательными элементами
            int K = 0;
                for (int i = 0; i < Mass.Length; i++)
                {
                    if (Mass[i] < 0)
                        K = i;
                   // break;
            }
                Console.WriteLine("номер первого отрицательного={0}", K);
               int K1 = 0;
                for (int i = K; i > Mass.Length; i--)
                {
                    if (Mass[i] < 0)
                        K1 = i;
                  //  break;
                }
                Console.WriteLine("номер второго отрицательного={0}", K1);
                double sum = 0.0;
                for (int i = K + 1; i < K1; i++)
                {
                    sum += Mass[i];
                }
                Console.WriteLine("Сумма  элементов = {0}", sum);
                //Убираем элементы с модулем менее единицы
 
                /*   for (int i = 0; i < N; i++)
                   {
                       if (Math.Abs(Mass[i]) < 1) Mass[i] = 0;
                   }
 
                   //Сжимаем массив и заполняем освобожденные элементы нулями
 
                   for (int i = 0; i < N; i++)
                   {
                       for (int j = i + 1; j < N; j++)
                       {
                           if (Mass[i] == 0)
                           {
                               Mass[i] = Mass[j];
                               Mass[j] = 0;
                           }
                           else break;
                       }
 
                   }
                   Console.WriteLine("Измененный массив\n");
                   foreach (double i in Mass) Console.Write("{0} ", i);
                   Console.WriteLine();*/
                Console.ReadKey();
            }
        }
    }

Решение задачи: «Программа не считает номер второго отрицательного элемента, и сумму элементов»

textual
Листинг программы
private static void Main()
{
    Console.Write("Введите размер массива ");
    int n = int.Parse(Console.ReadLine());
    double[] mass = new double[n];
 
    //Заполняем массив
    Console.WriteLine("Введіть значення елементів масиву");
    for (int i = 0; i < mass.Length; i++)
    {
        Console.Write("Mass[{0}] = ", i);
        mass[i] = double.Parse(Console.ReadLine());
    }
 
    // Контрольне виведення масиву
    Console.WriteLine("Вихідний масив:");
    Console.WriteLine(string.Join(" ", mass));
    
    //Вычисляем сумму элементов массива между крайними отрицательными элементами
    int k1 = 0;
    for (int i = 0; i < mass.Length; i++)
    {
        if (mass[i] < 0)
        {
            k1 = i;
            break;
        }
    }
    Console.WriteLine("номер первого отрицательного={0}", k1);
    int k2 = 0;
    for (int i = mass.Length - 1; i > k1; i--)
    {
        if (mass[i] < 0)
        {
            k2 = i;
            break;
        }
    }
    Console.WriteLine("номер второго отрицательного={0}", k2);
    double sum = 0.0;
    for (int i = k1 + 1; i < k2; i++)
    {
        sum += mass[i];
    }
    Console.WriteLine("Сумма элементов = {0}", sum);
    Console.ReadKey();
}

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


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

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

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