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

Помогите подправить код - C++

Восстановить пароль Регистрация
 
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 15:14     Помогите подправить код #1
Задача. Вводится n-значный массив состоящий из целых элементов. Надо найти произведение четных элементов. Но у меня почему то не работает. Поможете исправить?
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>
#include <time.h>
 
using namespace std; 
 
int main()
{
    int n,proz=0;
    cout << "Введите n: "; //Задаем количество элементов для генерации массива
        cin >> n;
    int *a = new int [ n ];
    for (int i = 0; i < n; i++)
    {
        a[i] = rand()%25;
    cout<<a[i]<<" ";
    }
 
    for (i = 1; i < n; i++);
    {
        proz *= a[i];
    }
    cout << "Произведение четных: "<< proz << endl;
    delete []a;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 15:14     Помогите подправить код
Посмотрите здесь:

c++ строки. подправить код C++
помогите пожалуйста подправить код C++
C++ c++ пожалуйста помогите подправить код
Немного подправить код C++
помогите подправить программу C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
30.10.2011, 15:25     Помогите подправить код #2
C++
1
proz=1;
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 15:27  [ТС]     Помогите подправить код #3
Цитата Сообщение от -comrade- Посмотреть сообщение
C++
1
proz=1;
Получается бред в виде большого произведения, при небольшом количестве элементов.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
30.10.2011, 15:33     Помогите подправить код #4
Цитата Сообщение от annka93 Посмотреть сообщение
Получается бред в виде большого произведения, при небольшом количестве элементов.
Что-то я вас не понимаю. Вот:
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>
 
using namespace std; 
 
int main()
{
    setlocale(0,"");
    int n, proz=1;
    cout<<"Ââåäèòå n: "; 
    cin>>n;
    int *a=new int[n];
    for(int i=0;i<n;i++)
    {
        a[i]=rand()%25;
        cout<<a[i]<<" ";
    }
    for(int i=1;i<n;i++)  proz*=a[i];
    cout<<endl<<"ÏðîèçâåäåГ*ГЁГҐ Г·ГҐГІГ*ûõ: "<<proz<<endl;
    delete []a;
    system("pause");
    return 0;
}
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
30.10.2011, 15:38     Помогите подправить код #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
#include "stdafx.h"
#include <iostream>
#include <time.h>
 
using namespace std; 
 
int main()
{
    srand(time(0));
        int n,proz=1;
        cout << "Введите n: "; //Задаем количество элементов для генерации массива
        cin >> n;
    int *a = new int [ n ];
    for (int i = 0; i < n; i++)
        {
        a[i] = rand()%25;
        cout<<a[i]<<" ";
        }
 
for(int i=0;i<n;i++)
{
    if(a[i]%2==0)
    {
    proz*=a[i];
}
}
        cout << "Произведение четных: "<< proz << endl;
        delete []a;
    return 0;
}
}
Всё работает
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 15:55  [ТС]     Помогите подправить код #6
Цитата Сообщение от Sick2 Посмотреть сообщение
Всё работает
Ну не работает
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
30.10.2011, 16:15     Помогите подправить код #7
Цитата Сообщение от annka93 Посмотреть сообщение
Ну не работает
Произведение чётных.
Миниатюры
Помогите подправить код  
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 16:24  [ТС]     Помогите подправить код #8
Sick2, У вас умножаются четные элементы(те которые делятся на 2), а мне нужно чтобы умножались элементы с четными индексами. Вопрос в первом сообщении некорректен. Сама не знаю что спрашиваю
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
30.10.2011, 16:30     Помогите подправить код #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std; 
 
int main()
{
        int n,proz=1;
        cout << "Введите n: "; //Задаем количество элементов для генерации массива
        cin >> n;
    int *a = new int [ n ];
    for (int i = 0; i < n; ++i)
        {
        a[i] = rand()%25;
        cout<<a[i]<<" ";
        }
 
    for (i = 1; i < n; i += 2)
          proz *= a[i];
        cout << "Произведение четных: "<< proz << endl;
        delete []a;
    return 0;
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2011, 16:35     Помогите подправить код #10
Учтите еще, что в вашей задаче, annka93, переполнение легко может произойти. Лучше для переменной proz тип double взять, хотя и это может быть мало.
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 16:39  [ТС]     Помогите подправить код #11
Цитата Сообщение от Thinker Посмотреть сообщение
Учтите еще, что в вашей задаче, annka93, переполнение легко может произойти. Лучше для переменной proz тип double взять, хотя и это может быть мало.
А разве delete []a; не исправляет эту проблему?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 16:42     Помогите подправить код
Еще ссылки по теме:

Подправить код C++
Подправить код C++
Нужно подправить код C++

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2011, 16:42     Помогите подправить код #12
Цитата Сообщение от annka93 Посмотреть сообщение
А разве delete []a; не исправляет эту проблему?
Причем тут это. Когда вы считаете произведение, например
32*32*32*32*32*32*32 = 2^35, то будет переполнение и произведение неправильно вычислено будет
Yandex
Объявления
30.10.2011, 16:42     Помогите подправить код
Ответ Создать тему
Опции темы

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