В одномерном массиве вычислить номер максимального элемента массива - C#
Формулировка задачи:
Помогите пожалуйста исправить код.
Вот задание:
В одномерном массиве, состоящем из n целых элементов, вычислить:
1) номер максимального элемента массива;
2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
Вот код:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int n = 0; int res = 1; Random r = new Random(); while (n <= 0) { Console.WriteLine("Введите количество элементов массива: "); n = Convert.ToInt32(Console.ReadLine()); } int[] array = new int[n]; Console.WriteLine("Исходный массив:"); for (int i = 0; i < n; i++) { array[i] = r.Next(-20, 20); if (array[i] < 0) { res *= array[i]; } Console.Write("{0} ", array[i].ToString()); } Console.WriteLine("\nПроизведение отрицательных элементов равно: {0}", res.ToString()); int max = array[0]; int index = 0; int[] retArray = new int[n]; Console.WriteLine("Массив обратный к исходному:"); for (int i = 0; i < n; i++) { if (array[i] > max) { max = array[i]; index = i; } retArray[i] = array[n - i - 1]; Console.Write("{0} ", retArray[i].ToString()); } int sum = 0; for (int i = 0; i < n; i++) { if (i < index) { sum += array[i]; } } Console.WriteLine("\nCумма элементов находящихся до максимального: {0}", sum.ToString()); } } }
Решение задачи: «В одномерном массиве вычислить номер максимального элемента массива»
textual
Листинг программы
static void Main(string[] args) { int arrayLength = 0; int[] mainArray; Random rndGenerator = new Random(); while (arrayLength <= 0) { Console.WriteLine("Введите количество элементов массива: "); arrayLength = Convert.ToInt32(Console.ReadLine()); } mainArray = new int[arrayLength]; int negativesProduct = 1; int[] reverseArray = new int[arrayLength]; int sumToMax = 0; int maxValue = int.MinValue; int maxValueIndex = 0; int[] zeroValuesIndex = new int[2] { int.MinValue, int.MinValue }; int zeroProduct = 1; Console.Write("Исходный массив: "); for (int i = 0; i < arrayLength; i++) { mainArray[i] = rndGenerator.Next(-20, 20); Console.Write(mainArray[i] + " "); if (mainArray[i] < 0) negativesProduct *= mainArray[i]; reverseArray[arrayLength - i - 1] = mainArray[i]; if (maxValue < mainArray[i]) { maxValue = mainArray[i]; maxValueIndex = i; } if (i == arrayLength - 1) { for (int k = 0; k < maxValueIndex; k++) sumToMax += mainArray[k]; Console.WriteLine(); } if (mainArray[i] == 0) { if (zeroValuesIndex[0] == int.MinValue) zeroValuesIndex[0] = i; else if (zeroValuesIndex[1] == int.MinValue) { zeroValuesIndex[1] = i; for(int n = zeroValuesIndex[0] + 1; n < zeroValuesIndex[1]; n++) { zeroProduct *= mainArray[n]; } } } } Console.WriteLine("Cумма элементов находящихся до максимального: {0}", sumToMax); Console.WriteLine("Произведение отрицательных элементов равно: {0}", negativesProduct); Console.WriteLine("Номер максимального элемента массива: {0}", maxValueIndex); Console.WriteLine("Произведение элементов массива, расположенных между первым и вторым нулевыми элементами: {0}", zeroProduct); Console.Read(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д