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

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

Восстановить пароль Регистрация
 
Vitiok
4 / 4 / 1
Регистрация: 17.01.2012
Сообщений: 70
02.02.2012, 19:16     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами? #1
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
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
 
int  main(int argc, _TCHAR* argv[])
{
    setlocale(0, "");
        int n, dob=1, a, b, sum=0;
        cout<<"Введите размер массива:"<<' ';
        cin>>n;
        int *matrix = new int[n];
        int Sneg = 0, Dob = 1, min, max;
        cout<<"Введите елемент массива:\n";
        for(int i = 0; i<n; i++)
        {
                cout<<i+1<<":";
                cin>>matrix[i];
        }
 
        cout<<"Ви ввели такое:"<<' ';
        for(int i=0; i<n; i++)
                cout<<matrix[i]<<'\t';
        cout<<endl;
_getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2012, 19:16     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами?
Посмотрите здесь:

Сумму элементов массива, расположенных между первым и последним нулевыми элементами. C++
Массив: Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами. C++
вычислить сумму элементов массива расположенных между первым и последним положительными элементами C++
C++ Сумму элементов массива, расположенных между первым и последним отрицательными элементами
сумму элементов массива, расположенных между первым и последним отрицательными элементами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
02.02.2012, 19:32     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами? #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <algorithm>
#include <iterator>
#include <numeric>
#include <vector>
 
int main()
{
    std::vector <int> vec(std::istream_iterator <int> (std::cin), std::istream_iterator <int> ());
    std::vector <int>::iterator first = std::find(vec.begin(), vec.end(), 0), last = std::find(vec.rbegin(), vec.rend(), 0).base()-1;   
    if(first != last)
        std::cout<<"Sum = "<<std::accumulate(first+1, last, 0)<<std::endl;
    else
        std::cout<<"We can't find sum"<<std::endl;
    system("pause");
    return 0;
}
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
02.02.2012, 19:44     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами? #3
Или продолжение первого варианта:
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
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
 
int  main(int argc, _TCHAR* argv[])
{
        setlocale(0, "");
        int n,j,k, dob=1, a, b, sum=0;
        cout<<"Введите размер массива:"<<' ';
        cin>>n;
        int *matrix = new int[n];
        int Sneg = 0, Dob = 1, min, max;
        cout<<"Введите елемент массива:\n";
        for(int i = 0; i<n; i++)
        {
                cout<<i+1<<":";
                cin>>matrix[i];
        }
        for(int i=0; i<n; i++)
         if (matrix[i]==0)
         {
             j=i;
             break;
         }
        for(int i=n; i>0; i--)
         if (matrix[i]==0)
         {
             k=i;
             break;
         }
        cout<<"Вы ввели такое:"<<' ';
        for(int i=0; i<n; i++)
                cout<<matrix[i]<<'\t';
        cout<<"\n";
        for(int i=j+1; i<k; i++)
         sum+=matrix[i];
        cout<<"Sum="<<sum;
        cout<<endl;
_getch();
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
02.02.2012, 19:47     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами? #4
BumerangSP, а если в массиве не будет нуля?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
02.02.2012, 19:57     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами? #5
Исправлено.
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
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
 
int  main(int argc, _TCHAR* argv[])
{
        setlocale(0, "");
        int n,j,k,z=0, dob=1, a, b, sum=0;
        cout<<"Введите размер массива:"<<' ';
        cin>>n;
        int *matrix = new int[n];
        int Sneg = 0, Dob = 1, min, max;
        cout<<"Введите елемент массива:\n";       
        for(int i = 0; i<n; i++)
        {
                cout<<i+1<<":";
                cin>>matrix[i];
        }
        for(int i=0; i<n; i++)
         if (matrix[i]!=0)
          z++;
        if (z!=0)
        {
         cout<<"Нет нулевого элемента";
         _getch();
         return 0;
        }
        for(int i=0; i<n; i++)
         if (matrix[i]==0)
         {
             j=i;
             break;
         }
        for(int i=n; i>0; i--)
         if (matrix[i]==0)
         {
             k=i;
             break;
         }
        cout<<"Ви ввели такое:"<<' ';
        for(int i=0; i<n; i++)
                cout<<matrix[i]<<'\t';
        cout<<"\n";
        for(int i=j+1; i<k; i++)
         sum+=matrix[i];
        cout<<"Sum="<<sum;
        cout<<endl;
_getch();
}
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
02.02.2012, 19:58     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами? #6
BumerangSP, куча циклов и лишних условий
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
02.02.2012, 20:00     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами? #7
soon, по условию сказано, что он должен быть. Тем более, если уж говорить о наличии всевозможных проверок, то тут много чего надо убрать/исправить.
Я поэтому и добавил код, что такие задачки обычно на 2-х, 3-х курсах дают. Поэтому и код попроще.
Dekio, Ваш вариант куда оптимизированней моего, в этом нет сомнений. Просто автор предоставил код, я его доделал. Примерно на том же уровне.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
02.02.2012, 20:00     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами? #8
BumerangSP, нужно сравнить лишь индексы первого и последнего нулевого элементов, а не выдумывать хрен знает что
1 проверка, которая даст или не даст нужную сумму
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2012, 20:06     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами?
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
BumerangSP
02.02.2012, 20:06     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами?
  #9

Не по теме:

И то верно

Yandex
Объявления
02.02.2012, 20:06     Как можна в етом примере найти сумму элементов массива, расположенных между первым и последним нулевыми элементами?
Ответ Создать тему
Опции темы

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