В одномерном массиве вычислить номер максимального элемента массива - C#

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

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

Помогите пожалуйста исправить код. Вот задание: В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами. Вот код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication1
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. int n = 0;
  12. int res = 1;
  13. Random r = new Random();
  14. while (n <= 0)
  15. {
  16. Console.WriteLine("Введите количество элементов массива: ");
  17. n = Convert.ToInt32(Console.ReadLine());
  18. }
  19. int[] array = new int[n];
  20. Console.WriteLine("Исходный массив:");
  21. for (int i = 0; i < n; i++)
  22. {
  23. array[i] = r.Next(-20, 20);
  24. if (array[i] < 0)
  25. {
  26. res *= array[i];
  27. }
  28. Console.Write("{0} ", array[i].ToString());
  29. }
  30. Console.WriteLine("\nПроизведение отрицательных элементов равно: {0}", res.ToString());
  31. int max = array[0];
  32. int index = 0;
  33. int[] retArray = new int[n];
  34. Console.WriteLine("Массив обратный к исходному:");
  35. for (int i = 0; i < n; i++)
  36. {
  37. if (array[i] > max)
  38. {
  39. max = array[i];
  40. index = i;
  41. }
  42. retArray[i] = array[n - i - 1];
  43. Console.Write("{0} ", retArray[i].ToString());
  44. }
  45. int sum = 0;
  46. for (int i = 0; i < n; i++)
  47. {
  48. if (i < index)
  49. {
  50. sum += array[i];
  51. }
  52. }
  53. Console.WriteLine("\nCумма элементов находящихся до максимального: {0}", sum.ToString());
  54. }
  55. }
  56. }

Решение задачи: «В одномерном массиве вычислить номер максимального элемента массива»

textual
Листинг программы
  1.         static void Main(string[] args)
  2.         {
  3.             int arrayLength = 0;
  4.             int[] mainArray;
  5.             Random rndGenerator = new Random();
  6.  
  7.             while (arrayLength <= 0)
  8.             {
  9.                 Console.WriteLine("Введите количество элементов массива: ");
  10.                 arrayLength = Convert.ToInt32(Console.ReadLine());
  11.             }
  12.             mainArray = new int[arrayLength];
  13.  
  14.             int negativesProduct = 1;
  15.             int[] reverseArray = new int[arrayLength];
  16.             int sumToMax = 0;
  17.  
  18.             int maxValue = int.MinValue;
  19.             int maxValueIndex = 0;
  20.  
  21.             int[] zeroValuesIndex = new int[2] { int.MinValue, int.MinValue };
  22.             int zeroProduct = 1;
  23.  
  24.             Console.Write("Исходный массив: ");
  25.             for (int i = 0; i < arrayLength; i++)
  26.             {
  27.                 mainArray[i] = rndGenerator.Next(-20, 20);
  28.                 Console.Write(mainArray[i] + " ");
  29.  
  30.                 if (mainArray[i] < 0)
  31.                     negativesProduct *= mainArray[i];
  32.  
  33.                 reverseArray[arrayLength - i - 1] = mainArray[i];              
  34.  
  35.                 if (maxValue < mainArray[i])
  36.                 {
  37.                     maxValue = mainArray[i];
  38.                     maxValueIndex = i;
  39.                 }
  40.  
  41.                 if (i == arrayLength - 1)
  42.                 {
  43.                     for (int k = 0; k < maxValueIndex; k++)
  44.                         sumToMax += mainArray[k];
  45.  
  46.                     Console.WriteLine();
  47.                 }
  48.  
  49.                 if (mainArray[i] == 0)
  50.                 {
  51.                     if (zeroValuesIndex[0] == int.MinValue)
  52.                         zeroValuesIndex[0] = i;
  53.                     else if (zeroValuesIndex[1] == int.MinValue)
  54.                     {
  55.                         zeroValuesIndex[1] = i;
  56.                         for(int n = zeroValuesIndex[0] + 1; n < zeroValuesIndex[1]; n++)
  57.                         {
  58.                             zeroProduct *= mainArray[n];
  59.                         }
  60.                     }
  61.                 }
  62.             }
  63.             Console.WriteLine("Cумма элементов находящихся до максимального: {0}", sumToMax);
  64.             Console.WriteLine("Произведение отрицательных элементов равно: {0}", negativesProduct);
  65.             Console.WriteLine("Номер максимального элемента массива: {0}", maxValueIndex);
  66.             Console.WriteLine("Произведение элементов массива, расположенных между первым и вторым нулевыми элементами: {0}", zeroProduct);
  67.             Console.Read();
  68.         }

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


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

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

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы