С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
#1

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

30.10.2011, 15:14. Просмотров 552. Ответов 11
Метки нет (Все метки)

Задача. Вводится 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 15:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите подправить код (C++):

c++ пожалуйста помогите подправить код - C++
Нужно переставить местами два указаных столбца(q,w).Написал этод код,а он переставляет только 1-3 и 2-3 столбцы и это при размере массива 3...

помогите пожалуйста подправить код - C++
C++.Нужно удалить элемент из массива.Выдает ошибку - : error C2105: '--' needs l-value .Подскажить что не так,а то я еще в этом...

помогите подправить программу - C++
Здравствуйте, есть следующее задание: С клавиатуры ввести текст, признаком конца ввода считать точку. Создать две функции для работы с...

Подправить код - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; const int n=10; float X; double sum(); int _tmain(int argc,...

Подправить код - C++
Помогите пожалуйста, нужно подправить код: /* Дана целочисленная квадратная матрица. Опередить: 1) произведение элементов в тех...

Подправить код - C++
Ввожу строку с 30 символов. Нужно вывести целое число и упорядочить за возростанием Добавлено через 39 секунд пример кода на фортран...

11
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
30.10.2011, 15:25 #2
C++
1
proz=1;
0
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 15:27  [ТС] #3
Цитата Сообщение от -comrade- Посмотреть сообщение
C++
1
proz=1;
Получается бред в виде большого произведения, при небольшом количестве элементов.
0
-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;
}
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;
}
}
Всё работает
0
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 15:55  [ТС] #6
Цитата Сообщение от Sick2 Посмотреть сообщение
Всё работает
Ну не работает
0
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
30.10.2011, 16:15 #7
Цитата Сообщение от annka93 Посмотреть сообщение
Ну не работает
Произведение чётных.
0
Миниатюры
Помогите подправить код  
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 16:24  [ТС] #8
Sick2, У вас умножаются четные элементы(те которые делятся на 2), а мне нужно чтобы умножались элементы с четными индексами. Вопрос в первом сообщении некорректен. Сама не знаю что спрашиваю
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
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;
}
1
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
30.10.2011, 16:35 #10
Учтите еще, что в вашей задаче, annka93, переполнение легко может произойти. Лучше для переменной proz тип double взять, хотя и это может быть мало.
0
annka93
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 17
30.10.2011, 16:39  [ТС] #11
Цитата Сообщение от Thinker Посмотреть сообщение
Учтите еще, что в вашей задаче, annka93, переполнение легко может произойти. Лучше для переменной proz тип double взять, хотя и это может быть мало.
А разве delete []a; не исправляет эту проблему?
0
Thinker
Эксперт С++
4229 / 2203 / 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, то будет переполнение и произведение неправильно вычислено будет
0
30.10.2011, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 16:42
Привет! Вот еще темы с ответами:

Подправить код - C++
#include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;ctype.h&gt; using namespace std; int main () { const int n=20; char s; int k={...

Требуется подправить код - C++
Очень долгое время не могу сдать лабораторную работу преподу в универе. Докапывается до ошибок в задаче, а как их исправить не говорит....

пожалуйста, подправить код - C++
#include &lt;conio.h&gt; #include &lt;iostream&gt; #include&lt;stdio.h&gt; using namespace std; int sd(int n, int d = 1) { if(n == 0) ...

Нужно подправить код - C++
Здравствуйте. Нужно, что бы после завершения программы, оно не выходило, а что бы появилась надпись: Хотите сыграть еще? И если нажать на...


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

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

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