Как сложить все элементы массива с

от admin

Вычислить сумму всех элементов массива в C#

В этом посте мы обсудим, как вычислить сумму всех элементов в целочисленном массиве в C#.

1. Использование Enumerable.Sum() метод

Мы можем использовать встроенный метод числовой агрегации Sum() от System.Linq namespace для вычисления суммы числовых значений в последовательности. Это показано ниже:

2. Использование Array.ForEach() метод

С использованием Array.ForEach() метод, мы можем выполнить операцию сложения для каждого элемента указанного массива. Следующий пример демонстрирует это, находя общую сумму всех элементов массива, используя Array.ForEach() :

3. Использование foreach петля

Мы также можем перебирать элементы массива с помощью оператора foreach и вычислять сумму на лету. Это показано ниже:

4. Использование Enumerable.Aggregate() метод

Наконец, можно использовать Enumerable.Aggregate() метод в System.Linq Пространство имен, которое применяет функцию аккумулятора к каждому элементу последовательности.

В следующем примере кода показано, как использовать Aggregate для выполнения сложения.

Это все о вычислении суммы всех элементов массива в C#.

Оценить этот пост

Средний рейтинг 4.84 /5. Подсчет голосов: 25

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования ��

How to sum up an array of integers in C#

Is there a better shorter way than iterating over the array?

Better primary means cleaner code but hints on performance improvement are also welcome. (Like already mentioned: splitting large arrays).

It’s not like I was looking for killer performance improvement — I just wondered if this very kind of syntactic sugar wasn’t already available: «There’s String.Join — what the heck about int[]?».

11 Answers 11

Provided that you can use .NET 3.5 (or newer) and LINQ, try

Yes there is. With .NET 3.5:

If you’re not using .NET 3.5 you could do this:

An alternative also it to use the Aggregate() extension method.

It depends on how you define better. If you want the code to look cleaner, you can use .Sum() as mentioned in other answers. If you want the operation to run quickly and you have a large array, you can make it parallel by breaking it into sub sums and then sum the results.

For extremely large arrays it may pay off to perform the calculation using more than one processors/cores of the machine.

Читать:
Xodo docs что это за программа на андроид

Theodor Zoulias's user avatar

One problem with the for loop solutions above is that for the following input array with all positive values, the sum result is negative:

The sum is -2147483648, as the positive result is too big for the int data type and overflows into a negative value.

For the same input array the arr.Sum() suggestions cause an overflow exception to be thrown.

A more robust solution is to use a larger data type, such as a «long» in this case, for the «sum» as follows:

The same improvement works for summation of other integer data types, such as short, and sbyte. For arrays of unsigned integer data types such as uint, ushort and byte, using an unsigned long (ulong) for the sum avoids the overflow exception.

The for loop solution is also many times faster than Linq .Sum()

To run even faster, HPCsharp nuget package implements all of these .Sum() versions as well as SIMD/SSE versions and multi-core parallel ones, for many times faster performance.

Как найти сумму и произведение элементов массива на C++

Такая задача часто встречается, если вы начали изучение программирования и уже дошли до работы с массивами.

Давайте разберемся с ней. Если вам необходимо найсти сумму или произведение элементов массива, или даже и то и другое, то нам понадобится для этого всего лишь один цикл.

Мы с напишем программу, которая выведет сам массив, сумму элементов массива, а также произведение элементов массива. Напишем ее на C++.

Прежде чем написать, давайте немного разберем сам алгоритм, обозначим шаги, которые необходимо будет сделать.

Первое — создадим сам массив, создадим начальную переменную для хранения суммы и начальную переменную для хранения произведения элементов массива.

Второе — с помощью цикла берем каждый элемент с первого до последнего. Элемент прибавляем его к переменной, котроая хранит сумму и записываем в переменную, которая хранит сумму (тавталогия?). Аналогичное проделываем и с переменной, которая хранит произведение.

Третье — выводим массив и выводим значения переменных, которые хранят сумму и произведение элементов массива.

Давайте теперь уже напишем программу, которая найдет сумму и произведение элементов массива на C++

#include using namespace std; int main() < /* Заполним массив значениями */ int n = 6; int mass[n] = <5, 3, 2, 9, 3, 8>; /* Создадим переменные для хранения суммы и произведения */ int sumValue = 0; // Сумма int proValue = 1; // Произведение (по умолчанию 1) cout Вывод программы

Похожие статьи