Суммирование только отобранных элементов с помощью array.Sum() - C#
Формулировка задачи:
Господа , подскажите что не так??? Метод по идее должен сложить все отобранные нечётные элементы массива int.Подскажите как правильно его использовать.При сложении -7+3+3+5+9 = 13 .У меня выводит 17.Где я облажался.
class Program { public static int[] arr ; private static void func2(ref int value) { arr = new int[] {-7,3,8,3,5,-4,9 }; int number = 0; string t = number.ToString(); Console.Write("Ввести номер действия:"); // можно t = Console.ReadLine(); if (false) { return ; // не проблема, у value остаётся старое значение } number = Int32.Parse(t); if (number==1) { for (int u = 0; u < arr.Length; ++u) { if (arr[u] % 2 != 0) { Console.Write(arr[u]+" , "); } } Console.Write("\n"+arr.Sum()); } Console.ReadKey(); } //string s2; // func2(ref s2); // нельзя, функция имеет право использовать значение, // значит, оно должно быть инициализировано сначала static void Main(string[] args) { int s2 = 0; func2(ref s2); // нельзя, функция имеет право использовать значение, // значит, оно должно быть инициализировано сначала }
Кажется проблема решена .Забыл создать новый массив.
arr_1[u] = arr[u]; Console.Write(arr_1[u] + " , ");
Решение задачи: «Суммирование только отобранных элементов с помощью array.Sum()»
textual
Листинг программы
var res = arr.Sum(x => x % 2 == 0 ? 0 : x);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д