Найти произведение элементов массива с четными номерами, сумму элементов и преобразовать массив - C#
Формулировка задачи:
В одномерном массиве, состоящем из n целых элементов, вычислить:
1) произведение элементов массива с четными номерами;
2) сумму элементов массива, расположенных между первым и последним нулевыми элементами.
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все отрицательные (элементы, равные 0, считать положительными).
Решение задачи: «Найти произведение элементов массива с четными номерами, сумму элементов и преобразовать массив»
textual
Листинг программы
using System; using System.Linq; namespace ConsoleApp1 { class Program { static int ReadlnInteger(string s) { Console.Write(s); return int.Parse(Console.ReadLine()); } static void Main() { Console.Write("N = "); int n = int.Parse(Console.ReadLine()); int[] a = Enumerable.Range(0, n).Select((v, i) => ReadlnInteger($"{i + 1} элемент: ")).ToArray(); Console.WriteLine($"Массив: {String.Join(" ", a)}"); Console.WriteLine("Произведение: " + a.Where((v, i) => i % 2 != 0).Aggregate(1, (x, v) => x * v)); int nul1 = -1, nul2 = -1; for (int i = 0; i < a.Length; i++) if (a[i] == 0) { nul1 = i; break; } for (int i=a.Length-1;i>=0;i--) if (a[i] == 0 && i != nul1) { nul2 = i; break; } Console.WriteLine(nul1 == -1 || nul2 == -1 ? "Нулевой элемент один или таковые отсутствуют!" : $"Сумма: {a.Where((v, i) => i > nul1 && i < nul2).Sum()}"); for (int i = 0; i < a.Length - 1; i++) for (int j = i; j < a.Length; j++) if (a[i] < 0 && a[j] >= 0) { int x = a[i]; a[i] = a[j]; a[j] = x; } Console.WriteLine($"Преобразованный массив: {String.Join(" ", a)}"); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д