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

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

Восстановить пароль Регистрация
 
stane4
0 / 0 / 0
Регистрация: 07.05.2014
Сообщений: 4
08.05.2014, 12:45     Найти сумму элементов, расположенных между первым и последним нулевыми элементами #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++
C++ Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами?
Массив: Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами. C++
C++ Сумму элементов массива, расположенных между первым и последним отрицательными элементами
сумму элементов массива, расположенных между первым и последним отрицательными элементами C++
C++ Сумму элементов массива, расположенных между первым и последним нулевыми элементами
C++ Найти сумму элементов массива, расположенных между первым и последним нулевыми элементами
C++ В одномерном массиве вычислить сумму элементов между первым и последним нулевыми элементами

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 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);
Yandex
Объявления
08.05.2014, 13:43     Найти сумму элементов, расположенных между первым и последним нулевыми элементами
Ответ Создать тему
Опции темы

Текущее время: 06:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru