Программа не считает номер второго отрицательного элемента, и сумму элементов - 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д