Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
versa4e_1706
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 11
#1

Дан целочисленный массив размера N. Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами. зарание благодарен

03.11.2012, 16:56. Просмотров 1067. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста написать код
Дан целочисленный массив размера N. Найти произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
зарание благодарен

Добавлено через 20 минут
начал писать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    setlocale(LC_CTYPE, "Rus");
    const int N=10;
    int arr[N];
    for (int i=0;i<N;i++)
    {
        cout <<"Введите элемент массива:"<<endl;
        cin>>arr[i];
    }
    cin.get();
    return 0;
}
дальше не пойму как условие нужно задавать

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 16:56
Ответы с готовыми решениями:

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

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

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

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

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

5
amoral-time
2 / 2 / 1
Регистрация: 08.11.2010
Сообщений: 8
03.11.2012, 17:05 #2
Находишь сначала индекс первого нулевого, потом второго нулевого. И циклом находишь произведение элементов.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int ind1 =0, ind2 = 0;
int prod = 0;
for(int i = 0; i< N; i++)
{
     if(arr[i] == 0)
           ind1 = i;
}
 
for(int i = ind1+1; i < N; i++)
{
       if(arr[i] == 0)
            ind2 = i;
}
 
for(int i = ind1; i< ind2; i++)
        prod *= arr[i];
0
BumerangSP
4287 / 1409 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
03.11.2012, 17:12 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
int main(void)
{
 const int n=10;
 int* arr = new int [n],k=0,i;
 for (i=1;i<=n;i++)
 {
  std::cout<<"Введите элемент массива: "<<std::endl;
  std::cin>>arr[i];
  if (!arr[i] && !k)
   k=i; 
 }
 int p=1;
 for (i=k+1;arr[i];i++)
  p*=arr[i];
 if (k+1==i)
  p=0;
 std::cout<<"Произведение: "<<p<<std::endl;
 delete[] arr;
 system("PAUSE");
 return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от amoral-time Посмотреть сообщение
int prod = 0;
...
prod *= arr[i];
Сколько на 0 не умножай, все равно 0 выйдет)
Здесь вполне одним циклом можно обойтись.
1
kuli4ok
32 / 32 / 17
Регистрация: 10.10.2012
Сообщений: 88
03.11.2012, 17:13 #4
или так, если надо указать размер массива.
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
#include <stdio.h>
 
int main()
{
    int *a;
    int *k;
    k = new int;
    printf("Укажите размер массива: ");
    scanf("%d", k);
    a = new int[*k];
    for(int i=0; i<*k; i++)
    {
        printf("Введите элемент массива №%d: ", i+1);
        scanf("%d", &a[i]);
    }
    puts("\nВвод окончен.\n");
    int *s;
    s = new int;
    for(int i=0; i<*k; i++)//поиск первого нулевого элемента
    {
        if(a[i]==0) {*s=i;}
    }
    int *l;
    l = new int;
    for(int i=*s+1; i<*k; i++)//поиск второго элемента
    {
        if(a[i]==0) {*l=i;}
    }
    delete k;
    k = new int;
    *k = 1;
    for(int i=*k+1; i<*s; i++)
    {
        *k = (*k)*a[i];
    }
    delete s;
    delete l;
    delete [] a;
    printf("Произведение: %d\n", *k);
    delete k;
    return 0;
}
мог накосячить с освобождением памяти, спешил
1
versa4e_1706
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 11
03.11.2012, 17:22  [ТС] #5
очень благодарен) сейчас буду тестировать
0
amoral-time
2 / 2 / 1
Регистрация: 08.11.2010
Сообщений: 8
03.11.2012, 18:18 #6
BumerangSPб точно) привычка обнулять переменные)
0
03.11.2012, 18:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 18:18

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

Вычислить произведение элементов массива, расположенных между первым и вторым нулевыми элементами
Привет всем. Нужна помощь в таком вопросе: в одномерном массиве, состоящем из n...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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