Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Nastia5606580
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 9
1

Найти сумму отрицательных элементов массива

22.11.2013, 14:49. Просмотров 864. Ответов 11
Метки нет (Все метки)

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

помогите
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 14:49
Ответы с готовыми решениями:

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

Найти сумму четных отрицательных и сумму нечетных положительных элементов массива.
Составьте программу на языке С++ для решения одного из вариантов заданий. Программа должна иметь...

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

Найти сумму отрицательных элементов массива
c++ 1. заполнить одномерный вещественный массив случайными числами, найти сумму отрицательных...

Найти сумму отрицательных элементов массива J(10).
Привет всем, я в програмировании ни чего не смыслю поэтому обращаюсь к вам, помогите составить...

11
genaryok
22 / 22 / 8
Регистрация: 18.10.2013
Сообщений: 62
22.11.2013, 17:22 2
Цитата Сообщение от Nastia5606580 Посмотреть сообщение
сумму отрицательных элементов массива;
C++
1
2
3
for(i=0;i<n;i++)
    if(a[i]<0)
        sum+=a[i];
1
Yuri_935
5 / 5 / 1
Регистрация: 17.04.2013
Сообщений: 15
22.11.2013, 17:47 3
Nastia5606580,
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <time.h>
#include "cstdlib"
using namespace std;
 
int main () 
{
    setlocale(LC_ALL, "Russian");  // Включение русского языка
    srand(time(NULL));
    int i, j, count = 0, N;
    cout << "\n Введите размер массива\n ";
    cin >> N;
    float * arr = new float [N]; // Выделение динамической памяти для массивва
    for (i = 0; i < N; i++)
    {
        // Случайное вещественное от 0 до 1
        float d = static_cast<float>(rand()) / RAND_MAX; // Вещественный ГСЧ
        arr[i] = d + (rand() % 50 - rand() % 50); // rand() % 50 - rand() % 50 = это ГСЧ целых чисел от 50 до 50
        if (arr[i] < 0)
            count++; // Подсчет отрицательных элементов
    }
    cout << "\n Вывод содержимого массива\n";
    for (i = 0; i < N; i++)
        cout << " " << arr[i]; // вывод содержимого массива
    cout << endl;
 
    // сортировка
    for(i = 0; i < N; i++)
        for(j = i + 1; j < N; j++)
            if(arr[j] < arr[i])
                swap(arr[i],arr[j]);
 
    cout << "\n Вывод отсортированного массива\n";
    for (i = 0; i < N; i++)
        cout << " " << arr[i]; // вывод отсортированного массива
 
    float proiz = arr[1];
    for (i = 2; i < N-1; i++)
        proiz *= arr[i];    // произведение элементов массива,
                            // расположенных между max и min элементами
    cout << "\n\n Количество отрицательных элементов = " << count;
    cout << "\n\n Произведение элементов массива,\n расположенных между max и min элементами = " << proiz << endl;
    getch();
 
}
1
Pokemon_93
9 / 5 / 0
Регистрация: 19.01.2013
Сообщений: 74
22.11.2013, 18:08 4
Yuri_935,
по моему так правильнее и красивее=), в вашем коде как минимум утечка памяти после создания динамического массива. а так же код тяжел для чтения.=)
плюс привидение типов, а это не рекомендуется

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
#include "stdafx.h"
#include "iostream"
#include "vld.h"
 
using namespace std;
 
void SearchMaxAndMinElements(int * arr,int sizeOfArray, int & maxElementPos, int & minElementPos)
{
    int maxElement=0;
    int minElement=0;
    for(int i = 0; i< sizeOfArray; i++)
    {
        if (arr[i] > maxElement)
        {
            maxElement = arr[i];
            maxElementPos = i+1;
        }
        if (arr[i] < minElement)
        {
            minElement = arr[i];
            minElementPos = i+1;
        }
    }
 
}
int SumOfTheNegativeValues(int * arr, int sizeOfArray)
{
    int sum=0;
    for(int i=0;i<sizeOfArray;i++)
    {
        if(arr[i]<0)
        {
            sum+=arr[i];
        }
    }
    return sum;
}
 
int MultiplyElementsFromMinToMax(int * arr,int sizeOfArray, int & maxElementPos, int & minElementPos)
{
    int result;
    if (minElementPos < maxElementPos)
    {
        result=arr[minElementPos];
        for(int i = minElementPos+1; i <= maxElementPos-1;i++)
        {
            result = result * arr[i];
        }
    }
    if (maxElementPos < minElementPos)
    {
        result=arr[maxElementPos];
        for(int i = maxElementPos+1; i <= minElementPos-1;i++)
        {
            result = result * arr[i];
        }
    }
    return result;
}
 
 
void main()
{
    int sizeOfArray;
    int maxElementPos=0;
    int minElementPos=0;
    int negVal;
    int multiplyResult;
    cout << "enter size of array: ";
    cin >> sizeOfArray;
    int *arr = new int[sizeOfArray];
 
    for (int i = 0; i<sizeOfArray; i++)
        cin >> arr[i];
 
    SearchMaxAndMinElements(arr, sizeOfArray, maxElementPos, minElementPos); 
    negVal = SumOfTheNegativeValues(arr, sizeOfArray);
    multiplyResult = MultiplyElementsFromMinToMax(arr, sizeOfArray, maxElementPos, minElementPos);
    
    cout << "Sum Of The Negative Values " << negVal << "\n";
    cout << "multiply element from min to max " << multiplyResult << "\n";
 
    delete[] arr;
}
P.S. если у вас не установлен visual leak detector, строку #include "vld.h" закоментить или удалить
1
22.11.2013, 18:08
Nastia5606580
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 9
22.11.2013, 22:01  [ТС] 5
спасибо вам всем большое, но единственная проблемка, что я еще не умею через count а только через printf и scanf
0
Ryuk
179 / 177 / 56
Регистрация: 10.06.2011
Сообщений: 871
22.11.2013, 22:06 6
Цитата Сообщение от Nastia5606580 Посмотреть сообщение
я еще не умею через count
Nastia5606580, думаю вы имели ввиду cout
printf и scanf это Си, а не С++
1
Nastia5606580
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 9
22.11.2013, 23:18  [ТС] 7
да верно cout

Добавлено через 1 минуту
но я же работаю в Microsoft Visual C++ 6.0
0
Pokemon_93
9 / 5 / 0
Регистрация: 19.01.2013
Сообщений: 74
22.11.2013, 23:22 8
Цитата Сообщение от Nastia5606580 Посмотреть сообщение
да верно cout

Добавлено через 1 минуту
но я же работаю в Microsoft Visual C++ 6.0
Nastia5606580,
Цитата Сообщение от Nastia5606580 Посмотреть сообщение
спасибо вам всем большое, но единственная проблемка, что я еще не умею через count а только через printf и scanf
ну так в чем загвостка то?
вместо cout << "enter size of array: "; пиши printf("enter size of array: ")
вместо cin >> sizeOfArray; пиши scanf(sizeOfArray)
а почему в такой старой версии то работаете? Microsoft Visual Studio 2012 куда получше будет, она 11 стандарт поддерживает.
1
Nastia5606580
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 9
22.11.2013, 23:25  [ТС] 9
мне не принципиально какая версия прогораммы, главное что бы работало
0
Pokemon_93
9 / 5 / 0
Регистрация: 19.01.2013
Сообщений: 74
22.11.2013, 23:38 10
Цитата Сообщение от Nastia5606580 Посмотреть сообщение
мне не принципиально какая версия прогораммы, главное что бы работало
вот такая вот функция main будет

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
void main()
{
    int sizeOfArray;
    int maxElementPos=0;
    int minElementPos=0;
    int negVal;
    int multiplyResult;
    printf("enter size of array: ");
    //cin >> sizeOfArray;
        scanf("%d", &sizeOfArray);
    
        int *arr = new int[sizeOfArray];
 
    for (int i = 0; i<sizeOfArray; i++)
        scanf("%d", &arr[i]);
        //cin >> arr[i];
 
    SearchMaxAndMinElements(arr, sizeOfArray, maxElementPos, minElementPos); 
    negVal = SumOfTheNegativeValues(arr, sizeOfArray);
    multiplyResult = MultiplyElementsFromMinToMax(arr, sizeOfArray, maxElementPos, minElementPos);
    //cout << "Sum Of The Negative Values " << negVal << "\n";
    printf("Sum Of The Negative Values %d\n", negVal );
 
    printf("multiply element from min to max %d\n", multiplyResult);
 
    delete[] arr;
}
1
Nastia5606580
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 9
22.11.2013, 23:46  [ТС] 11
Pokemon_93, спасибо огромнейшее, очень вам благодарна
0
Pokemon_93
9 / 5 / 0
Регистрация: 19.01.2013
Сообщений: 74
23.11.2013, 02:46 12
Цитата Сообщение от Nastia5606580 Посмотреть сообщение
Pokemon_93, спасибо огромнейшее, очень вам благодарна
да не за что, если будут какие то вопросы стучи сюда тук тук
там я чаще бываю
0
23.11.2013, 02:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2013, 02:46

Найти сумму отрицательных элементов массива
Привет, очень нужна ваша помощь. Нужно программу на TurboC 3.0 Дан массив чисел а1,..., А20 и...

Найти сумму отрицательных элементов массива
Здравствуйте, умные люди, помогите, плиз! я написал программу, компилятор выдаёт ноль ошибок, но...

Найти сумму отрицательных элементов массива
Заданы целые числа a1, a2,…, an. Написать программу, которая находит сумму отрицательных элементов...


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

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

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