0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 8
1

Вычисление суммы четных и нечетных элементов. Помогите разобраться в коде

08.04.2015, 19:58. Показов 689. Ответов 6
Метки нет (Все метки)

Здравствуйте! Вот изучаю язык C++. Есть программа, которая вычисляет сумму четных и нечетных элементов. В общих чертах я понимаю, что делается, но вот детально и конкретно понять не могу, особенно то, что в теле функций. Помогите разобраться в коде

Вот листинг:
C++
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
#include <iostream>
 
const int SIZE = 10;
 
int getmax(int array[], int l, int r); 
void procedure(int array[], int left, int right, int &m, int &n); 
 
int main(void)
{
int i = 0, j = 0;
int array[SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = getmax(array, 0, SIZE - 1);
std::cout <<"max item = "<< sum << std::endl;
std::cout <<"before: i = "<< i <<", j = "<< j << std::endl;
procedure(array, 0, SIZE-1, i, j);
std::cout <<"after: i = "<< i <<", j = "<< j << std::endl;
return 0;
}
 
int getmax(int array[], int left, int right)
{
int max = array[left];
for (int i = left + 1; i <= right; i++)
if (array[i] > max)
max = array[i];
return max;
}
 
void procedure(int array[], int left, int right, int &m, int &n)
{
int i;
for (i = left; i <= right; i++)
if (array[i] % 2 == 0)
m += array[i];
else
n += array[i];
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2015, 19:58
Ответы с готовыми решениями:

Вычисление суммы четных и суммы нечетных чисел в одномерном массиве
1) Написать программу для вычисления суммы четных и суммы нечетных чисел в одномерном массиве!

Вычисление суммы квадратов четных и кубов нечетных чисел (циклы)
7. С помощью цикла «пока» или цикла «до» написать программу вычисления суммы S квадратов четных и...

Циклы с параметром. Вычисление суммы квадратов четных и кубов нечетных чисел от 1 до N
Написать программу вычисления суммы S квадратов четных и кубов нечетных чисел от 1 до N. Проверку...

Вычисление суммы квадратов четных чисел и суммы кубов нечетных чисел
Написать программу вычисления суммы S квадратов четных и кубов нечетных чисел от 1 до N. Проверку...

6
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
08.04.2015, 20:34 2
Напишите, где именно вам непонятно?
0
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 8
08.04.2015, 20:37  [ТС] 3
Не буду усложнять. Просто скажу, что здесь мне непонятны практически все действия.
0
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
08.04.2015, 20:47 4
Вроде так, если ничего не забыл...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int getmax(int array[], int left, int right) // принимаем на вход массив и границы (нижн. и верхн.)
{
int max = array[left]; // элемент массива с индексом нижней границы приравниваем переменной max
for (int i = left + 1; i <= right; i++) // цикл по массиву, начиная с элемента left + 1 (так как он уже использовался выше)
if (array[i] > max) // и если текущий элемент массива больше переменной max
max = array[i]; // устанавливаем новое значение переменной max как текущий элемент массива
return max; // на выходе получаем максимальное число из массива (в заданном диапазоне [left; right])
}
 
void procedure(int array[], int left, int right, int &m, int &n) // принимаем массив, границы и 2 ссылки на сущ. переменные
{
int i;
for (i = left; i <= right; i++) // цикл по массиву
if (array[i] % 2 == 0) //и если число четное
m += array[i]; // прибавляем к переменной m значение текущего элемента массива
else // если же нечетное
n += array[i]; // прибавляем к другой переменной значение текущего элемента массива
}
0
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 8
08.04.2015, 21:04  [ТС] 5
Спасибо большое за подробные и доходчиво написанные комментарии.
Вот только одно недопонимание осталось: что в этой программе значат "left" и "right"?
0
Эксперт С++
8719 / 4262 / 950
Регистрация: 15.11.2014
Сообщений: 9,668
08.04.2015, 21:13 6
Цитата Сообщение от farmazon95 Посмотреть сообщение
что в этой программе значат "left" и "right"?
позиции с какого по какой элемент массива нужно обработать.

например. пусть массив будет: {0,1,2,3,4,5,6,7,8};

тогда при left = 2, и right = 4, будет обработана последовательность: 2,3,4
0
0 / 0 / 0
Регистрация: 25.04.2014
Сообщений: 8
08.04.2015, 21:23  [ТС] 7
Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2015, 21:23
Помогаю со студенческими работами здесь

Найти суммы четных элементов (элементов с четным номером) массива вещественных чисел A(22) и нечетных элементов
Здравствуйте, дорогие форумчане. Не могли бы вы мне помочь? Мне нужно составить программу с таким...

Сравнить суммы четных и нечетных элементов заданной последовательности
Надо написать программу, которая выяснит, является ли сумма нечётных чисел из представленных...

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

Вычислить частное от деления суммы четных элементов на сумму нечетных
Составить программу где будет последовательность A1, A2, A3..An Где сумма елементов четных будет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru