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

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

16.05.2017, 01:20. Показов 1707. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите доработать пожалуйста, последний этап не могу сообразить.

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
#include 
#include 
#include 
#include 
 
using std::cout;
using std::cin;
using std::endl;
 
int main () {
 
int a[20], n, i, rez = 1;
cout << " Enter the elements of the array (<=20) ";
cin >> n;
cout <<"\n Massiv A" << endl;
    for(i=0; i<n; i++) {
    cout << " A[ " << i << " ] = ";
    cin >> a[i];
}
    for(i=0; i<n; i++)
    if(a[i] !=0){
    rez *= a[i];
}
  cout <<"\t Rezultat = " << rez << endl;
  cout << "\n Press any key ..." << endl;
  
  getch();
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2017, 01:20
Ответы с готовыми решениями:

Найти произведение элементов массива расположенных между двумя нулевыми элементами
Программе необходимо найти произведение элементов между двумя нулевыми элементами массива. Я...

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

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

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

7
3 / 3 / 6
Регистрация: 12.03.2013
Сообщений: 25
16.05.2017, 06:57 2
Нет проверки на первый нулевой элемент, умножение идёт до него, а не между ними
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
16.05.2017, 08:30 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <iterator>
 
int main()
{
    std::vector <int> v { -11, 4, 10, -6, 0, -8, 3, 3, 9, 0, 2, 0, 5 };
 
    auto E0_1 = std::distance(v.begin(), std::find(v.begin(), v.end(), 0));
    auto E0_2 = std::distance(v.begin(), std::find(v.begin() + 1 + E0_1, v.end(), 0));
    std::cout << std::accumulate(v.begin() + 1 + E0_1, v.begin()+E0_2, 1, std::multiplies<int>());
    std::cout << std::endl;
 
    system("pause");
}
0
3 / 3 / 9
Регистрация: 15.05.2017
Сообщений: 17
16.05.2017, 10:12 4
Ну вот такой велосипед попробуй =)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    int a[20], j = 0, n, i, rez = 1;
    cout << " Enter the elements of the array (<=20) ";
    cin >> n;
    cout << "\n Massiv A" << endl;
    for (i = 0; i<n; i++) {
        cout << " A[ " << i << " ] = ";
        cin >> a[i];
        if (a[i] == 0 && j == 0)
            j = i + 1;
    }
    for (; a[j] != 0 && j < n; j++)
        rez *= a[j];
        
        
    cout << "\t Rezultat = " << rez << endl;
    cout << "\n Press any key ..." << endl;
Добавлено через 15 секунд
Ну вот такой велосипед попробуй =)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    int a[20], j = 0, n, i, rez = 1;
    cout << " Enter the elements of the array (<=20) ";
    cin >> n;
    cout << "\n Massiv A" << endl;
    for (i = 0; i<n; i++) {
        cout << " A[ " << i << " ] = ";
        cin >> a[i];
        if (a[i] == 0 && j == 0)
            j = i + 1;
    }
    for (; a[j] != 0 && j < n; j++)
        rez *= a[j];
        
        
    cout << "\t Rezultat = " << rez << endl;
    cout << "\n Press any key ..." << endl;
0
Форумчанин
Эксперт CЭксперт С++
8216 / 5046 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.05.2017, 10:15 5
barabaha789, что делать если нулевых элементов меньше 2?
0
0 / 0 / 0
Регистрация: 04.05.2015
Сообщений: 60
16.05.2017, 13:50  [ТС] 6
Вывести сообщение.

Добавлено через 1 час 52 минуты
Не едет велосипед)

Добавлено через 16 минут
Цитата Сообщение от jekkery Посмотреть сообщение
Нет проверки на первый нулевой элемент, умножение идёт до него, а не между ними
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
int main () {
 
 
    int a[20], n, i, zero1, zero2, rez = 1;
    cout << " Enter the elements of the array (<=20) ";
    cin >> n;
    cout <<"\n Massiv A" << endl;
        for(i=0; i<n; i++) {
            cout << " A[ " << i << " ] = ";
            cin >> a[i];
        }
 
        
        for(i=1; i<n; i++) 
            if (a[i]==0) {
                zero1=i;     
            }   if (a[i]==0) {
                    zero2=i;        
            }
        
        for(i=zero1; i<zero2; i++)
            rez*=a[i];
 
        
    cout << "\t Rezultat = " << rez << endl;
    cout << "\n Press any key ..." << endl;
    getch();
 
}
Подскажите где ошибка?
0
3 / 3 / 6
Регистрация: 12.03.2013
Сообщений: 25
16.05.2017, 14:35 7
Лучший ответ Сообщение было отмечено barabaha789 как решение

Решение

Не так ищете границы

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 a[20], n, i, zero1, zero2, rez = 1;
    cout << " Enter the elements of the array (<=20) ";
    cin >> n;
    cout << "\n Massiv A" << endl;
    for (i = 0; i<n; i++) {
        cout << " A[ " << i << " ] = ";
        cin >> a[i];
    }
 
 
    for (i = 0; i < n; i++) {
        if (a[i] == 0) {
            zero1 = i+1;
            break;
        }
    }
    i = zero1;
    while (a[i] != 0) {
        rez *= a[i];
        i++;
 
    }
    cout << "\t Rezultat = " << rez << endl;
    system("pause");
 
}
Добавлено через 12 минут
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
#include <iostream>
using namespace std;
 
int main() {
 
    int a[20], n, i, zero1, c = 0, rez = 1;
    bool z=false;
    cout << " Enter the elements of the array (<=20) ";
    cin >> n;
    cout << "\n Massiv A" << endl;
    for (i = 0; i<n; i++) {
        cout << " A[ " << i << " ] = ";
        cin >> a[i];
        if (a[i] == 0) c++;
    }
 
    if (c<2) cout << " Ne hvataet nulei ";
    else {
        for (i = 0; i < n; i++) {
            if (a[i] == 0) {
                zero1 = i + 1;
                break;
            }
        }
        i = zero1;
 
        while (a[i] != 0) {
            rez *= a[i];
            z = true;
            i++;
        }
        if (z == false) cout << "Net chisel mejdu nulyami ";
        else cout << "\t Rezultat = " << rez << endl;
    }
    system("pause");
 
}

Более правильный код
1
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
16.05.2017, 17:08 8
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 a[20], n, rez = 1, k=0;
    cout << " Enter the elements of the array (<=20) ";
    cin >> n;
    cout <<"\n Massiv A" << endl;
    for (int i=0; i<n; i++)
    {
        cout << " A[ " << i << " ] = ";
        cin >> a[i];
    }
    for (int i=0; i<n; i++)
    {
        if (a[i]==0)
        {
            k++;
        }
        if (k>=1 && k<=2 && a[i]!=0)
        {
            rez*=a[i];
        }
    }
    cout <<"\t Rezultat = " << rez << endl;
    cout << "\n Press any key ..." << endl;
    return 0;
}
0
16.05.2017, 17:08
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.05.2017, 17:08
Помогаю со студенческими работами здесь

Найти произведение элементов расположенных между двумя нулевыми элементами
а вот эту можете решить?)) Массив А (100) содержит два нулевых элемента (номера которых не...

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru