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

Сумма отрицательных элементов массива - C++

Восстановить пароль Регистрация
 
freeflowmc
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 39
10.06.2014, 01:08     Сумма отрицательных элементов массива #1
В динамическом массиве, состоящем из n вещественных величин.
А. Сумму отрицательных элементов массива
В. Произведение элементов массива, расположенных между максимальным и минимальным элементами
С.упорядочить элементы массива по возрастанию

часть А и С сделал работает правельно, но не могу понять почему часть B не правельная помогите кому не сложно
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <iomanip>
#include <ctime>
 
using namespace std;
 
void bubbleSort(int *, int);
 
int main(){
 
    setlocale(LC_ALL,"Russian");
 
    int n,i; 
    double sum = 0.0; 
    cout << "Введите количесвто элементов массива = ";
    cin >> n;
    int *a = new int [n]; 
    //заполнение случайными числами массив
    
    for ( i = 0 ; i < n; i++)
    {
    srand(time(0));
    for ( int j = 0; j < n; j++)
    {
    a[j] = rand() % 201 - 100;
    }
    cout << "A["  << i+1 << "]" << " = " << a[i] << endl;
    }
    //подсчёт суммы
    for (  i = 0; i < n; ++i)
    if (a[i] < 0)
    sum +=a[i];
    cout <<"Сумма отрицательных элементов массива = " << sum << endl;
    int imax,imin;
    for ( int i = imax = imin = 0; i < n; i++)
    {
        if (a[i] > imax ) imax = i;
        if (a[i] < imin ) imin = i;
        
    }
    cout << "\n\t max = " << a[imax] << "  min = " << a[imin] << endl << endl;
    //
    int proz = 1;
    if ( imax > imin )
    {
        for ( int i = imin ; i <= imax; i++)
        {
            proz *=a[i];
        }
        cout << "Произведение между max и min элементами массива = " << proz << endl;
    }
    
    else if (imin > imax )
    {
        for ( int i = imin; i <= imax; i++)
        {
            proz *=a[i];
        }
        cout << "Произведение между max и min элементами массива = " << proz << endl;
    }
 
    cout << endl << endl;
    //
 
    bubbleSort(a,n);
    cout << "Сортировка пузырьком :" << endl << endl;
    for ( int i = 0; i < n; i++)
    {
        
        cout << setw(2) << a[i] << "  " ;
    }
    cout << "\n";
    delete [] a;
    system("pause");
        return 0;
}
 
void bubbleSort(int* arrayPrt, int lenght_array)
{
    int temp = 0;
    bool exit = false;
    while (!exit)
    {
        exit = true;
        for ( int i = 0; i < (lenght_array - 1); i++)
            if (arrayPrt[i] > arrayPrt[i+1])
            {
                temp = arrayPrt[i];
                arrayPrt[i] = arrayPrt[i+1];
                arrayPrt[i+1] = temp;
                exit = false;
            }
    }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jewbacabra
1791 / 1506 / 540
Регистрация: 24.04.2014
Сообщений: 4,231
10.06.2014, 01:19     Сумма отрицательных элементов массива #2
не правильно реализован поиск минимума и максимума: сравнивается значение элемента массива с индексом.

C++
1
2
3
4
5
int imin = 0, imax = 0;
for (int i=1; i < n; ++i) {
    if (a[i] < a[imin]) imin = i;
    if (a[i] > a[imax]) imax = i;
}
freeflowmc
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 39
10.06.2014, 01:28  [ТС]     Сумма отрицательных элементов массива #3
но уже при вводе 10 элементов массива компилятор выдаёт не верные данные
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
10.06.2014, 01:30     Сумма отрицательных элементов массива #4
C++
1
2
3
4
5
6
7
8
9
    for ( i = 0 ; i < n; i++)
    {
    srand(time(0));
    for ( int j = 0; j < n; j++)
    {
    a[j] = rand() % 201 - 100;
    }
    cout << "A["  << i+1 << "]" << " = " << a[i] << endl;
    }
WTF?!
freeflowmc
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 39
10.06.2014, 01:32  [ТС]     Сумма отрицательных элементов массива #5
генерация диапозона чисел и вывод на экран что тут не понятного ?
Jewbacabra
1791 / 1506 / 540
Регистрация: 24.04.2014
Сообщений: 4,231
10.06.2014, 01:37     Сумма отрицательных элементов массива #6
Цитата Сообщение от freeflowmc Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
for ( i = 0 ; i < n; i++)
* * {
* * srand(time(0));
* * for ( int j = 0; j < n; j++)
* * {
* * a[j] = rand() % 201 - 100;
* * }
* * cout << "A[" *<< i+1 << "]" << " = " << a[i] << endl;
* * }
А это что такое?
Зачем вложенный цикл? То что будет выведено на экран не соответствует тому что находится в массиве
Цитата Сообщение от freeflowmc Посмотреть сообщение
но уже при вводе 10 элементов массива компилятор выдаёт не верные данные
какие данные? и все-таки не компилятор а данная программа.

Добавлено через 2 минуты

Не по теме:

Nekto, опередил

freeflowmc
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 39
10.06.2014, 01:37  [ТС]     Сумма отрицательных элементов массива #7
вот и поэтому я и расчитываю на Вашу помощь)
Jewbacabra
1791 / 1506 / 540
Регистрация: 24.04.2014
Сообщений: 4,231
10.06.2014, 01:38     Сумма отрицательных элементов массива #8
freeflowmc, убери вложенный цикл и j поменяй на i
freeflowmc
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 39
10.06.2014, 01:40  [ТС]     Сумма отрицательных элементов массива #9
компилятор выводит одно и тоже отрицательное число
Jewbacabra
1791 / 1506 / 540
Регистрация: 24.04.2014
Сообщений: 4,231
10.06.2014, 01:42     Сумма отрицательных элементов массива #10
попробуй srand поместить перед циклом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2014, 01:45     Сумма отрицательных элементов массива
Еще ссылки по теме:

Найти количество отрицательных элементов столбца, у которого сумма четных элементов не больше 30. C++
C++ Сумма элементов в тех столбцах, которые не содержат отрицательных элементов.
C++ Массивы: сумма отрицательных элементов

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

Или воспользуйтесь поиском по форуму:
freeflowmc
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 39
10.06.2014, 01:45  [ТС]     Сумма отрицательных элементов массива #11
всё отлично заработало! лайк поставил спасибо кто помог)
Yandex
Объявления
10.06.2014, 01:45     Сумма отрицательных элементов массива
Ответ Создать тему
Опции темы

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