С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tgnwest
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 15
#1

Функция суммирует каждый третий элемент (если он положительный) и возвращает полученную сумму - C++

09.09.2013, 18:37. Просмотров 421. Ответов 5
Метки нет (Все метки)

Здравствуйте!

Помогите пожалуйста, начал изучать С++ и вот остановился на такой задаче, если не сложно объясните как делать..

Написать функцию которая из передаваемого ей произвольного одномерного вещественного массива
длиной N элементов выбирает и суммирует каждый третий элемент (если он положительный) и возвращает полученную сумму. N не больше 999.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2013, 18:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция суммирует каждый третий элемент (если он положительный) и возвращает полученную сумму (C++):

Вычислить сумму положительных элементов матрицы А (4,5), разделить на нее каждый элемент. Полученную матрицу вывести - C++
помогите курсовую сделать

Посчитать сумму всех отрицательных элементов матрицы и заменить суммой каждый третий элемент - C++
Дан двумерный массив A nxm. Посчитать сумму всех отрицательных элементов и заменить этой суммой каждый третий элемент. Написать программу.

Заменить третий положительный элемент массива на максимальный - C++
Здравствуйте подскажите как заменить третий позитивный элемент массива на максимальный #include <vcl.h> #pragma hdrstop #pragma...

Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы - C++
Здравствуйте! Дано задание: Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та...

Третий положительный элемент поменять местами с последним элементом массива - C++
Третий положительный элемент поменять местами с последним элементом массива. Помогите, буду очень благодарен.

Третий положительный элемент массива заменить средним арифметическим положительных элементов - C++
Третий положительный элемент заменить среднеарифметическим значением положительных всех элементов . Сумму элементов массива ,...

5
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,070
Завершенные тесты: 1
09.09.2013, 18:42 #2
0 ввести переменную N (и инициализировать либо с клавиатуры либо статически)
1 создать массив размером N элементов (прежде сравниваем N c 999)

в функции:

2 создать переменную в которой будет храниться сумма, приравниваем ее к нулю
3 создать цикл от первого элемента массива по последнего
4 если индекс цикла кратен трем - берем элемент и проверяем на положительность
5 если положительный - добавляем к сумме
6 после цикла возвращаем сумму
1
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
09.09.2013, 19:15 #3
Цитата Сообщение от Raali Посмотреть сообщение
если индекс цикла кратен трем
Итого куча лишних итераций. Лучше изначально счётчик инициализировать двойкой и увеличивать на 3 после каждой итерации:
C++
1
for (int i = 2; i < N; i += 3)
0
tgnwest
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 15
09.09.2013, 20:22  [ТС] #4
А как массив заполнить произвольными числами?
0
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
09.09.2013, 20:52 #5
Цитата Сообщение от tgnwest Посмотреть сообщение
А как массив заполнить произвольными числами?
Инициализируешь рандом и заполняешь массив:
C++
1
2
3
srand(time(NULL));
for (int i = 0; i < N; i++)
   array[i] = rand();
Обращаю внимание - time() объявлена в библиотеке ctime. Чтобы выпадали числа из определённого интервала, воспользуемся "формулой": rand() % количество_чисел_в_интервале + смещение. Например, если нужны числа в интервале [5; 15], то элементам массива задаём значение:
C++
1
array[i] = rand() % 11 + 5;
1
kravam
быдлокодер
1703 / 890 / 45
Регистрация: 04.06.2008
Сообщений: 5,489
09.09.2013, 22:33 #6
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
//та самая функция 
float f (float* array) {
 float s= 0;
 int i= 0;
 while (array[i]!=100) 
 {
  if (!((i+1)%3)) 
   if (array[i]> 0) {                
    s+= array[i];
   }
  i++;
 };
 return s;
}
 
//+++++++++++++++++++++++++++++++++++++
 
int main()
{
 
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 
 srand (time(0));
 
 rand();
 int k= rand()%999+ 2;
 float* p= new float [k]; 
 printf ("число элементов равно %d\n", k- 1);
 
 
 //++++++++++++++++++++++++++++
 //Заполним и выведем массив
 
 for (int i= 0; i< k- 1; i++) {
     p [i]= rand()%100+ (float)(rand()%100)/100;
     int t= rand()%2;
     printf ("%.*f ",2, p[i]* (t- 1+ t));
 }
 p[k- 1]= 100.0;
 printf ("\n");
 
 //++++++++++++++++++++++++++++
 printf ("%.*f\n", 2,  f(p));
 delete [] p; 
 
 getchar ();
 
 return 0;
}
1
09.09.2013, 22:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2013, 22:33
Привет! Вот еще темы с ответами:

Увеличить каждый третий элемент массива в 2 раза - C++
Напишите программу, которая увеличит каждый третий элемент массива в 2 раза. Ввод данных в одномерный целочисленный массив осуществляет...

Вывести на экран каждый третий элемент файла, не читая весь файл - C++
Надо вывести на экран каждый третий элемент файла не читая весь файл

в первой из строк, содержащей максимальное количество элементов, каждый положительный элемент заменить суммой его цифр - C++
:cry:

Напишите программу, которая заменит каждый положительный элемент суммой всех элементов массива. Ввод данных - C++
Привет!Ребят,если не сложно сможете помочь? то я чайник в C++:( Спасибо большое!


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.