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