ВНИМАНИЕ |
Для заказа программы пишите на мой электронный адрес proglabs@mail.ru |
Алгоритм поиска суммы элементов одномерного массива является классическим и обязателен для рассмотрения.
Алгоритм работает одинакового независимо от того, какого типа элементы: целые или вещественные числа.
➡ Для удобства восприятия информации я возьму одномерный массив целых чисел, состоящий из $6$ элементов.
Например, такой: $v = \{ 3;\ -7;\ 6;\ 4;\ 3;\ -2 \}$
Во-первых, так как будем искать сумму элементов, то потребуется переменная, которая будет отвечать за результат ( искомую сумму ). По классике назовем эту переменную sum.
Во-вторых, обязательно нужно занулить переменную sum, так как в языке Си ( именно на этом языке я приведу код программы ) по умолчанию переменные инициализируются информационным мусором ( каким-то произвольным значением), то есть sum = 0.
В-третьих, очевидно, чтобы найти сумму элементов, необходимо обратиться к каждому элементу массива. Значит, потребуется цикл, в котором будут просканированы все элементы заданного массива. При обработке элементов одномерного массива, как правило, идеально подходит цикл со счетчиком, то есть цикл for.
В результате я написал следующую программу, которая находит сумму элементов целочисленного одномерного массива, состоящего из $6$ элементов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include <stdio.h> // для ввода-вывода #include <locale.h> // русификация диалогов #include <stdlib.h> // служебные функции // количество элементов одномерного массива #define N 6 //------------------------------------------------------------------------------------------------- // вывод значений элементов одномерного массива на экран //------------------------------------------------------------------------------------------------- void Print( const int values[] ) { int i; printf( "Одномерный целочисленный массив, состоящий из %d элементов имеет вид:\n\t", N ); for ( i = 0; i < N; i++ ) { printf( "%6d", values[ i ] ); } } //------------------------------------------------------------------------------------------------- // нахождение суммы элементов одномерного целочисленного массива //------------------------------------------------------------------------------------------------- double Get_sum( const int values[] ) { int i; double sum = 0.0; for ( i = 0; i < N; i++ ) { sum += values[ i ]; } return sum; } //------------------------------------------------------------------------------------------------- // главная функция программы ( точка входа ) //------------------------------------------------------------------------------------------------- int main( void ) { int values[ N ] = { 3, -7, 6, 4, 3, -2 }; double sum; setlocale( LC_ALL, "Russian" ); Print( values ); sum = Get_sum( values ); printf( "\n\nСумма элементов заданного массива: %.0lf", sum ); printf( "\n\n" ); system( "pause" ); return EXIT_SUCCESS; } //------------------------------------------------------------------------------------------------- |
💡 Прошу обратить внимание на тип данных переменной sum. Да, он вещественный ( дробный ), а не целочисленный. Это связано с тем, что возможна ситуация, когда мощности стандартного целочисленного типа не хватит, чтобы вместить сумму. Чтобы избежать переполнения и получения неправильного результата, я использую самый мощный вещественный тип данных языка Си ( стандарта C89 ), то есть тип данных double.
В итоге программа выдает следующий результат ( проверьте его корректность ):

Рисунок — результаты работы программы
Добавить комментарий