Найти сумму элементов между крупнейшим и самым маленьким элементом в массиве - C#
Формулировка задачи:
Нужно найти сумму элементов между крупнейшим и самым маленьким элементом в массиве(включая эти элементы).
Вроде Бы работает, но мне не засчитали ее. Что здесь не так?
Листинг программы
- int[] array = { 1, 2, 0, 5, 4, 3,10, 2, 3 };
- int max = array[0];
- int min = array[0];
- int n = 0;
- int k = 0;
- int res = 0;
- for (int i = 0; i < array.Length; i++)
- {
- if (array[i] >max)
- {
- max = array[i];
- k = i;
- }
- if (array[i] < min)
- {
- min = array[i];
- n = i;
- }
- }
- if (n < k)
- {
- for (int j = n; j < k+1; j++)
- {
- res += array[j];
- }
- }
- else
- for (int j = k; j < n+1; j++)
- {
- res += array[j];
- }
Решение задачи: «Найти сумму элементов между крупнейшим и самым маленьким элементом в массиве»
textual
Листинг программы
- using System.Linq;
- using System;
- class Program
- {
- static void Main()
- {
- int [] arr = { 1, 2, 0, 5, 4, 3,10, 2, 3 };
- int max = arr.Max(); // находим макс и мин
- int min = arr.Min();
- int maxi = Array.IndexOf(arr, max); // находим их индексы
- int mini = Array.IndexOf(arr, min);
- int start, stop; // start - меньший индекс, stop - больший
- if(maxi > mini)
- {
- start = mini;
- stop = maxi;
- }
- else
- {
- start = mini;
- stop = maxi;
- }
- int len = stop - start + 1; // если не прибавить 1, не включится последнее число
- Console.WriteLine(arr.Skip(start).Take(len).Sum());
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д