Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 5
1

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

07.12.2018, 00:36. Показов 3240. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан целочисленный массив размера N.Найти произведение элементов массива,расположенных между первым и вторым нулевыми элементами.(Как я понимаю,то между элементами ,которые равны 0,например : 0,1,2,3,4,0,5,7,9, то тогда нужно 1*2*3*4)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2018, 00:36
Ответы с готовыми решениями:

Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами
П5.4.Правил Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и...

Произведение элементов массива расположенных между первым и вторым нулевыми элементами
произведение элементов массива расположенных между первым и вторым нулевыми элементами. ...

Произведение элементов массива, расположенных между первым и вторым нулевыми элементами
не могу понять, компилятор ругается на вторую функцию. или я что-то неправильно делаю? //В...

Произведение элементов массива, расположенных между первым и вторым нулевыми элементами
2)В одномерном массиве, состоящем из 20 целых элементов, вычислить: 1- номер максимального...

8
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
07.12.2018, 01:16 2
А если 0 будет один ? Или вообще их не будет.
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 5
07.12.2018, 01:17  [ТС] 3
Я так понимаю,что изначально нужно указать в массиве два нуля,однако я в этом не уверен,так как не обсуждалось само задание.
0
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
07.12.2018, 01:24 4
Лучший ответ Сообщение было отмечено malaartem как решение

Решение

Цитата Сообщение от malaartem Посмотреть сообщение
так как не обсуждалось само задание
Плохо, что не обсуждаете условия задач.

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
#include <iostream>
#include <windows.h>
#include <string>
 
using namespace std;
 
  
 
int main() {
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
 
 
    int     arr[] = {1,0,1,2,3,4,0,5,7,9};
    bool    mul_fl = false;
    int     mul=1;
 
    for(int i=0; i<(sizeof arr/sizeof arr[0]); i++){
        if(arr[i]==0 && mul_fl)     break;
        if(arr[i]==0){
            mul_fl = true;
            continue;
        }
        if(mul_fl)    mul*=arr[i];
    }
 
    cout << "Поизведение = " << mul;
 
 
    cout << endl << endl << endl;
    system ("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 5
07.12.2018, 01:26  [ТС] 5
Извиняюсь за назойливость , но нет ли другого способа решения(так сказать попроще ?) ,а то просто на 1 курсе сложно будет объяснить многое из вышеуказанного кода ?
0
119 / 94 / 35
Регистрация: 18.12.2012
Сообщений: 654
07.12.2018, 01:28 6
Куда уж проще ? Обычный цикл с условиями и умножением.
1
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
07.12.2018, 01:32 7
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
#include <algorithm>
#include <array>
#include <iostream>
#include <numeric>
#include <random>
 
int main() {
 
    constexpr std::size_t size = 10;
    std::array<int, size> arr;
 
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dist(-2, 2);
 
    std::generate(arr.begin(), arr.end(), [dist, &gen]() { return dist(gen); });
 
    std::cout << "Array: ";
    for (const auto &el : arr)
        std::cout << el << ' ';
 
    auto it = std::find(arr.begin(), arr.end(), 0);
    auto rit = std::find(arr.rbegin(), arr.rend(), 0);
 
    int mult = 1;
 
    if (it == arr.end())
        std::cout << "\nThere are no elemens equals to zero in the array\n";
    else if (it == rit.base() - 1)
        std::cout << "\nThere is one element equal to zero in the array\n";
    else
        std::cout << "\nResult: " << std::accumulate(it + 1, rit.base() - 1, 1, std::multiplies<int>())
        << '\n';
 
    system("PAUSE");
    return 0;
 
 
}
Добавлено через 49 секунд
Цитата Сообщение от malaartem Посмотреть сообщение
Извиняюсь за назойливость , но нет ли другого способа решения(так сказать попроще ?) ,а то просто на 1 курсе сложно будет объяснить многое из вышеуказанного кода ?
Тогда программирование - это не твое. Выбирай другую профессию.
1
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 5
07.12.2018, 01:32  [ТС] 8
Спасибо еще раз огромное.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.12.2018, 01:47 9
malaartem, нужно проверять наличие нулей, а также не расположены ли они рядом. но если нули заведомо есть, можно так:
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
#include <iostream>
using namespace std;
 
int main()
{
    int N, k=0, ifirst=0, isecond=0, mult=1;
    cout <<"N="; cin >>N;
 
    int*a = new int[N];
 
    cout <<"Enter "<<N<<" elements:\n";
    for (int i = 0; i < N; i++)
      {    
      cin >>a[i];
      if (a[i]==0) 
        {
        k++;       
        if (k==1) ifirst=i;
        if (k==2) isecond=i;
        }      
      }     
 
    for (int i = ifirst+1; i < isecond ; i++)
    mult*=a[i];
    
    cout <<"mult="<<mult<<endl;
 
    delete[]a;
system("pause");
return 0;
}
0
07.12.2018, 01:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2018, 01:47
Помогаю со студенческими работами здесь

Вычислить произведение элементов массива, расположенных между первым и вторым нулевыми элементами
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main () { const int n=10;...

Массив: произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
всем привет! помогите, пжл: в одномерном массиве, состоящем из n целых элементов, вычислить: ...

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

Вычислить произведение элементов массива, расположенных между первым и вторым нулевыми элементами
Вычислить произведение элементов массива, расположенных между первым и вторым нулевыми элементами?...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru