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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Тори
 Аватар для Тори
1 / 1 / 0
Регистрация: 09.05.2010
Сообщений: 59
28.05.2010, 18:55     Найти произведение четных элементов массива #1
найти произведение четных элементов массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
main()
{  int mas[n];
   for (int i=0;i<n;i++)
   mas[i]=random(100);
   int proizvedenie=1;
   for(int i=0;i<n;i++)
    {
        if(i%2==0)
            {proizvedenie*=mas[i];}
    }
    cout<<proizvedenie<<endl;
return 0;
}
выдает ошибку ,связанную с n и с рандомом.....помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2010, 18:55     Найти произведение четных элементов массива
Посмотрите здесь:

C++ Найти сумму четных и произведение нечетных элементов массива
Найти сумму четных элементов массива, стоящих на четных местах C++
C++ Найти произведение четных элементов вектора.
C++ Найти сумму элементов четных строк и произведение элементов нечетных строк массива
Вычислить и вывести произведение первых 7 элементов массива и сумму следующих 7 элементов находящихся на четных позициях C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тори
 Аватар для Тори
1 / 1 / 0
Регистрация: 09.05.2010
Сообщений: 59
28.05.2010, 20:31  [ТС]     Найти произведение четных элементов массива #21
что-то я не пойму.....
я хочу увидеть массив,затем произведение, а затем количество
я немножко подправила....
и что-то не пойму,что происходит...
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
#include<math.h>
#include<stdlib.h>
#include<iostream.h>
int main ()
{
    const int n=5;
    int mas[n];
    srand(time(NULL));
    for (int i=0;i<n;i++)
        mas[i]=rand()%10;
        cout<<mas[n];
    int proizvedenie=1;
    for (int i=0;i<n;i++)
        if(i%2==0)
        proizvedenie*=mas[i];
cout<<"proizvedenie="<<proizvedenie<<endl;
int kolli4=0;
    for (int i=0;i<n;i++)
        if (mas[i]==proizvedenie)
        kolli4++;
cout<<"kolli4="<<kolli4<<endl;
system("pause");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
28.05.2010, 20:46     Найти произведение четных элементов массива #22
Строки 9-11 неправильно.
C++
1
2
3
 for (int i=0;i<n;i++)
        mas[i]=rand()%10;
        cout<<mas[n];
Вот так:
C++
1
2
3
 for (int i=0;i<n;i++) {
        mas[i]=rand()%10;
        cout << mas[i]; }
Тори
 Аватар для Тори
1 / 1 / 0
Регистрация: 09.05.2010
Сообщений: 59
28.05.2010, 20:55  [ТС]     Найти произведение четных элементов массива #23
иногда правильно считает произведение,а иногда нет....что это может значить?
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
28.05.2010, 21:09     Найти произведение четных элементов массива #24
Я думаю попадаются элементы, равные нулю => все произведение будет равно нулю.
Мы может ограничить диапозон случайных значений, и тем самым исключим ноль, написав:

C++
1
mas[i]=rand()%10+1;
Тори
 Аватар для Тори
1 / 1 / 0
Регистрация: 09.05.2010
Сообщений: 59
28.05.2010, 21:13  [ТС]     Найти произведение четных элементов массива #25
с нулем понятно....
но когда все числа массива ненулевые почему-то неправильно считает..
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
28.05.2010, 21:17     Найти произведение четных элементов массива #26
Посмотрел внимательно код, и нашел.
В цикле, где мы ищем элементы с четным индексом, и делаем проверку на остаток деления на двойку.
MAS[0], 0%2==0 => MAS[0] с четными индексом.

Я же показывал как это делается)

C++
1
2
3
for (int i=1; i<n; i+=2)
    if(i%2==0)
        proizvedenie*=mas[i];
Не забывай что индексация идет с нуля, поэтому элемент с индексом [1], будет четным (т.к. он второй по счету).
Тори
 Аватар для Тори
1 / 1 / 0
Регистрация: 09.05.2010
Сообщений: 59
28.05.2010, 21:23  [ТС]     Найти произведение четных элементов массива #27
нужно найти произведение четных значений, а не четных мест....
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.05.2010, 21:35     Найти произведение четных элементов массива #28
C++
1
2
3
for (int i=0; i<n; i+=2)
    if(mas[i]%2==0)
        proizvedenie*=mas[i];
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
28.05.2010, 21:46     Найти произведение четных элементов массива #29
Неуглядел.

C++
1
2
3
int product=1;
for (int i=0; i<size; i++)
    if (MAS[i]%2==) product*=MAS[i];
Все правильно должно быть.
А можно пример неправильной работы программы, к примеру, скриншот?

Добавлено через 25 секунд
kazak, четных элементов может-быть и два подряд)
kazak
28.05.2010, 21:48
  #30

Не по теме:

Копипаст проклятый, недоглядел

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2010, 09:46     Найти произведение четных элементов массива
Еще ссылки по теме:

Найти произведение четных элементов матрицы 4*4 C++
Найти сумму четных элементов, количество нечетных элементов и произведение элементов, кратным 3 C++
C++ Найти сумму и произведение всех четных элементов массива

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

Или воспользуйтесь поиском по форуму:
Тори
 Аватар для Тори
1 / 1 / 0
Регистрация: 09.05.2010
Сообщений: 59
29.05.2010, 09:46  [ТС]     Найти произведение четных элементов массива #31
я исправила,все теперь правильно считает, спасибо вам огромное!!!
в итоге получилось:
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
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
#include<iostream.h>
int main ()
{
    const int n=5;
    int mas[n];
    srand(time(NULL));
    for (int i=0;i<n;i++)
        {mas[i]=rand()%10;
        cout<<mas[i]<<" ";}
    int proizvedenie=1;
    for (int i=0;i<n;i++)
        if(mas[i]%2==0)
        proizvedenie*=mas[i];
cout<<"proizvedenie="<<proizvedenie<<endl;
int kolli4=0;
    for (int i=0;i<n;i++)
        if (mas[i]==proizvedenie)
        kolli4++;
cout<<"kolli4="<<kolli4<<endl;
system("pause");
return 0;
}
Yandex
Объявления
29.05.2010, 09:46     Найти произведение четных элементов массива
Ответ Создать тему
Опции темы

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