Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 01.11.2017
Сообщений: 22

Определить сумму элементов массива, расположенных после первого отрицательного элемента

17.11.2017, 17:48. Показов 5042. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать массив из 20 случайных чисел в диапазоне от -10 до
30. Определить сумму элементов массива, расположенных в
массиве после первого отрицательного элемента.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.11.2017, 17:48
Ответы с готовыми решениями:

Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента
Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента. Вот код: #include <conio.h> ...

Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по модулю элемента массива; 2) сумму...

Шаблонная функция вычисляющая сумму модулей элементов массива, расположенных после первого отрицательного элемента
1. Реализовать шаблон для одномерного массива любого типа. 2. Реализовать шаблон функции которая выполняет следующие действия для...

12
17.11.2017, 17:50

Не по теме:

Попытки самостоятельного решения были?

0
0 / 0 / 0
Регистрация: 01.11.2017
Сообщений: 22
17.11.2017, 17:52  [ТС]
Да
Но лишь наброски
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
17.11.2017, 17:54
Цитата Сообщение от Foxon Посмотреть сообщение
Да
Но лишь наброски
В чём главная проблема этой задачи? Составление алгоритма? Работа с массивом?
В крайнем случае мб заполнять ручками лень?(Можно автоматом).
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
17.11.2017, 18:08
Цитата Сообщение от Foxon Посмотреть сообщение
после первого отрицательного элемента
А если таких элементов не будет (такой вариант исключать нельзя), тогда что делати будем ?
0
0 / 0 / 0
Регистрация: 01.11.2017
Сообщений: 22
17.11.2017, 18:11  [ТС]
Выводить ошибку
0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
17.11.2017, 18:12

Не по теме:

мановар, зачем человека нагружаете? Он пока с проблемами определится не может, а вы уже такие сложности! Лан если молчит, то пусть ждёт кто-нить сейчас код закинет. Нажеюсь это будет не мой клон, который оставляет 1 комментарий на 250 строк, а через неделю обновляет "программу" начиная с подключения элементов STL:D



Добавлено через 50 секунд
Цитата Сообщение от Foxon Посмотреть сообщение
Выводить ошибку
Скидывайте свой код и не бойтесь. Здесь 99% участников говнокодят.
0
17.11.2017, 18:20

Не по теме:

Цитата Сообщение от SlavaSokolov Посмотреть сообщение
зачем человека нагружаете?
Вообще никакой нагрузки ни сложностей не заметил. Вполне резонный вопрос. Надо с STL, сделаем с STL.:D

0
174 / 134 / 105
Регистрация: 14.04.2016
Сообщений: 719
17.11.2017, 18:49

Не по теме:

Цитата Сообщение от мановар Посмотреть сообщение
Надо с STL, сделаем с STL
С STL? Пойду гуглить класс Array для C++помню в java такой был... Или arraylist уже не помню.



Добавлено через 25 минут
мановар, передаю вам эстафету, надеюсь, вы придумаете что-то более изощренное и оригинальное!
Настоятельно не рекомендую открывать спойлер тем, кто любит C-языки...
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <vector>
#include <string>
#include <ctime>
 
void step_1(int *number) { number = new int; }
void step_end(int* number) { delete number; }
void step_2(int* array, int* size) { array = new int[*size]; }
void step_2_end(int* array) { delete array; }
void step_3(int* array, int* size)
{
    for (int i = 0; i < *size; i++)
        array[i] = read();
}
 
int read() { int i; std::cin >> i; return i; }
 
void print_mess_1() { std::cout << "Чёт отрицательных чисел не нашлось... Что же делать то?" << std::endl; }
void print_mess_2() { std::cout << "Сумма борохла = "; }
void print_summ(int summ) { std::cout << summ << std::endl; }
 
int main()
{
    int* size;
    int* min;
    int* max;
 
    step_1(size);
    step_1(min);
    step_1(max);
 
    *size = read();
    *max = read();
    *min = read();
 
    int* array;
    step_2(array, size);
 
    step_3(array, size);
 
    int summ = 0;
    bool flag = false;
 
    for (int i = 0; i < *size; i++)
    {
        if (array[i] < 0)
            flag = true;
        if (flag)
            summ += array[i];
    }
 
    if (flag)
    {
        print_mess_2;
        print_summ;
    }
    else {
        print_mess_1();
    }
 
    step_end(size);
    step_end(min);
    step_end(max);
    step_2_end(array);
}

Foxon, я предлагаю такое решение. Протестите мб работать не будет я не знаю.
0
Software Developer
 Аватар для fastb1t
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,336
17.11.2017, 18:53
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
 
int arr_num [41] = {
    -10,  -9,  -8,  -7,  -6,  -5,  -4,  -3,  -2,  -1,
    0,     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
};
 
int main (int argc, char *argv [])
{
    srand (time (NULL));
    int arr [20];
    for (int i=0; i<20; i++)
         arr [i] = arr_num [rand () % 41];
    
    std::cout << "array: ";
    for (int i=0; i<20; i++)
         std::cout << arr [i] << " ";
    std::cout << std::endl;
    
    int sum = 0;
    int index = -1;
    for (int i=0; i<20; i++)
         if (arr [i] < 0)
         {
              index = i;
              break;
         }
    if (index == -1 || index == 19)
         std::cout << "Error" << std::endl;
    else
    {
         for (int i=index + 1; i<20; i++)
              sum += arr [i];
         std::cout << "summ: " << sum << std::endl;
    }
    system ("pause > nul");
    return 0;
}
0
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
17.11.2017, 19:02
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
#include <vector>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
#include <numeric>
 
int main()
{
    std::vector <int> vec(20);
 
    std::mt19937 gen{ std::random_device()() };
    std::uniform_int_distribution <> dist(-10, 30);
    std::generate(begin(vec), end(vec), [&dist, &gen] {return dist(gen); });
 
    copy(cbegin(vec), cend(vec), std::ostream_iterator<int>{std::cout, "  "});
    std::cout << std::endl;
    
    auto pos = std::find_if(cbegin(vec), cend(vec), [](auto const el) {return el < 0; });
 
    if (pos == end(vec))
        std::cout << " Ek Babay negative element \n";
    else
        std::cout << " summ = " << std::accumulate(begin(vec) + (pos - begin(vec)) + 1, end(vec), 0) << std::endl;
 
    system ("pause");
0
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
17.11.2017, 20:24
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 <ctime>
 
using namespace std;
 
int main() 
{
   int arr [20],sum = 0;
   bool flag=0;
 
   for (int i=0; i<20; i++)
     {
       arr [i] = -10+rand () %40 ;
       cout<<arr[i]<<"  ";
     }
   for (int i=0; i<19; i++)
     {
       if(arr[i]<0)flag=1;
       if(flag==1)
       sum+=arr[i+1];
     }
   cout<<"\n\n"<<sum;
   system("pause>0");
   return 0;
}
0
8 / 8 / 6
Регистрация: 21.04.2018
Сообщений: 142
21.04.2018, 16:28
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
#include<iostream>
#include<ctime> // Включает srand в программу
#define size 20 // Нечто типа глобальной-константной переменной
using namespace std;
 
int main()
{
    srand(time(0)); // Рандом
 
    int arr[size]; // Создание массива
    int sum = 0;
    bool flag = 0; 
 
    for (int i = 0; i < size; i++)
    {
        arr[i] = rand() % 41 - 10; // Диапазон чисел
        cout << "a[" << i << "]= " << arr[i] << endl; // Вывод всех чисел массива на экран
    }
    for (int i = 0; i < size; i++)
    {
        if (arr[i] < 0)
            flag = 1; // Знак программе того, что число отрицательное (по условию)
        if (flag == 1)
            sum += arr[i];
    }
    cout << "Sum = " << sum << endl; // Вывод всей суммы
 
    system("pause");
    return 0;
}
Переправил, рабочая. Единственное что.. она не считает сумму исключительно положительных чисел.. Что добавить можно было бы в эту программу для того, что-бы вычислялась сумма всех положительных чисел, не удаляя условие минуса?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2018, 16:28
Помогаю со студенческими работами здесь

Вычислить номер минимального по модулю элемента и сумму модулей элементов, расположенных после первого отрицательного
Добрый день. Прошу Вашей помощи. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по...

Определить сумму и количество элементов массива, расположенных до первого отрицательного числа
Ввести целочисленный Массив,состоящий из 10 элементов. Определить сумму и колличество элементов, расположенных до первого отрицательного...

Определить сумму и количество элементов массива, расположенных до первого отрицательного числа
Ввести целочисленный массив, состоящий из 10 элементов. определить сумму и количество элементов, расположенных до первого отрицательного...

Вычислить сумму элементов массива, расположенных после последнего отрицательного элемента
необходимо помочь в одномерных числовых массивах. сам начал работу, но в дальнейшем не могу справиться! кину само задание и текст кода: ...

Вычислить сумму целых частей элементов массива, расположенных после последнего отрицательного элемента
2) сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru