Форум программистов, компьютерный форум CyberForum.ru

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

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

Найти сумму элементов, расположенных между первым и последним нулевыми элементами - C++

08.05.2014, 12:45. Просмотров 464. Ответов 1
Метки нет (Все метки)

Найти сумму элементов, расположенных между первым и последним нулевыми элементами
не подскажет никто как в этом коде это сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<conio.h>
#include<iostream.h>
using namespace std;
  int main()
  {
  const int N=10;
  int i,k=1,massiv[N];
  cout<<"Vvedite 10 celyh chisel \n";
   for(i=0;i<N;i++)
   cin>>massiv[i];
    for(i=0;i<N;i++)
    cout<<"\n massiv["<<i<<"]="<<massiv[i];
    for(i=0;i<=N;i++)
    {k=massiv[i]*k;}  // summa 
    cout<<"\n Proizv="<<k<<'\n';
 
    
cin>>k;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 12:45     Найти сумму элементов, расположенных между первым и последним нулевыми элементами
Посмотрите здесь:

Сумму элементов массива, расположенных между первым и последним нулевыми элементами. - C++
Сумму элементов массива, расположенных между первым и последним нулевыми элементами. Вот код: #include &lt;iostream.h&gt; #include...

Вычислить сумму элементов массива, расположенных между первым и последним нулевыми элементами - C++
В одномерном массиве, состоящем из целых элементов, вычислить: сумму элементов массива, расположенных между первым и последним нулевыми...

Найти сумму элементов массива, расположенных между первым и последним положительными элементами - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: • минимальный элемент массива; • сумму элементов массива,...

Найти сумму элементов динамического массива, расположенных между первым и последним положительными элементами - C++
Задание: Найти сумму элементов динамического массива, расположенных между первым и последним положительными элементами. for (int i =...

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

Найти сумму положительных элементов, расположенных между первым и последним отрицательными элементами строки - C++
Помогите найти сумму положительных элементов, расположенных между первым и последним отрицательными элементами этой же строки. #include...

В одномерном массиве вычислить сумму элементов между первым и последним нулевыми элементами - C++
в одномерном массиве состоящем из n вещественных элементов вычислить сумму элементов между первым и последним нулевыми элементами ...

Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами - C++
П5.4.Правил Запрещено создавать темы с бессмысленными названиями вроде &quot;Помогите!&quot;, &quot;Вопрос&quot; и т.п. помогите решить задачу на С++ ...

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

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
774 / 707 / 129
Регистрация: 27.07.2012
Сообщений: 2,026
Завершенные тесты: 3
08.05.2014, 13:43     Найти сумму элементов, расположенных между первым и последним нулевыми элементами #2
Во-первых, здесь вылетишь за пределы массива:
C++
1
2
for(i=0;i<=N;i++)
    {k=massiv[i]*k;}
Нужно сравнивать i < N, так как последний элемент имеет индекс N - 1.

Цитата Сообщение от stane4 Посмотреть сообщение
Найти сумму элементов, расположенных между первым и последним нулевыми элементами
C++
1
2
3
4
5
6
7
8
9
10
11
int i_first = 0, i_second = N -1;
while ((massiv[i_first] != 0) && (i_first < N))
    ++i_first;
while ((massiv[i_second] != 0) && (i_second > 0))
    --i_second;
int sum = 0;
if (i_first < i_second)
{
    for (i = i_first; i < i_second; ++i)
        sum += massiv[i];
}
Либо же, используюя STL:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <algorithm>
#include <iterator>
#include <numeric>
 
int * first = std::find(massiv, massiv + N, 0);
int * second = std::find(std::reverse_iterator<int*>(massiv + N),
                                 std::reverse_iterator<int*>(massiv), 0).base();
--second;
sum = 0;
if (first < second)
    int sum = std::accumulate(first, second, 0);
Ответ Создать тему
Опции темы

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