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

Сумма положительных чисел массива

22.05.2021, 21:32. Показов 5442. Ответов 5

Студворк — интернет-сервис помощи студентам
Дан массив A из N целых чисел. Найти и вывести сумму положительных чисел в этом
массиве.
Input
В первой строке вводится целое число N (1<=N<=1000) — количество чисел в массиве
A. Во второй строке вводятся N целых чисел — элементы массива A
(-10000<=A i <=10000).
Output
Требуется вывести сумму положительных чисел в массиве A. Выводить пробел в конце
не нужно.
Sample Input
4
1 -2 3 -4
Sample Output
4
Мой код:
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()
{
     int N = 10;
    int A[N], sum;
    cin >> N;
    for (int i = 0; i < N; i++)
    {
        cin >> A[i];
    }
    sum = 0;
    for (int i = 0; i < N; i++)
    {
        if (A[i] >= 0)
            sum += A[i];
    }
    cout  << sum << endl;
    return 0;
}
Программа работает не всегда правильно, помогите пожалуйста
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2021, 21:32
Ответы с готовыми решениями:

Сумма положительных чисел, принадлежащих к группам подряд следующих положительных чисел
Задание: С клавиатуры вводится последовательность int чисел. Признак окончания ввода 0. Необходимо: 1. Среднее арифметическое всех...

Сумма положительных элементов массива и положительных элем столбца
Помогите с задачкой по с++ Дано массив 7 на 5, нужно найти сумму положительных элементов массива, и сумму положительных элементов каждого...

Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х[N]; s1 u k2 - сумма
Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х; s1 u k2 ...

5
 Аватар для HamsterGamer
40 / 29 / 11
Регистрация: 21.06.2019
Сообщений: 201
22.05.2021, 21:47
Лучший ответ Сообщение было отмечено kaktus2002 как решение

Решение

kaktus2002, Вы используете статический массив, но из-за того что Ваш компилятор, вероятно, любит VLA вам не сообщается ужасная ошибка, что нельзя объявлять статические массивы с неконстантным размером. Причем, обычно компилятор даже не запаривается на то, меняете ли Вы переменную и просто требует квалификатор const в ее объявлении. Ну и дополнительно ко всему, вы выделяете всегда 10 элементов, так как ввод у вас после того как массив был инстанциирован.

Попробуйте так:

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 <iostream>
 
using namespace std;
 
int main()
{
    int N = 10;
    cin >> N;
    int * A = new int [N];
    int sum;
    for (int i = 0; i < N; i++)
    {
        cin >> A[i];
    }
    sum = 0;
    for (int i = 0; i < N; i++)
    {
        if (A[i] >= 0)
            sum += A[i];
    }
    cout  << sum << endl;
 
    delete [] A;
 
    return 0;
}
1
1 / 1 / 0
Регистрация: 04.01.2021
Сообщений: 49
22.05.2021, 23:08  [ТС]
HamsterGamer, большое спасибо за разъяснение
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
23.05.2021, 08:00
kaktus2002, думаю, что на основе условии вашей задачи нам нужен тип long long для переменной sum вместо int. Потому что сумма элементов, которые в типе int, может быть превышать лимита типа int.
И мы сможем использовать только один цикл for с целью оптимизации кода. На основе кода у HamsterGamer я переделал снизу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
 
int main()
{
    int N;
    cin >> N;
    int* A = new int[N];
    long long sum = 0;
    for (int i = 0; i < N; i++)
    {
        cin >> A[i];
        if (A[i] >= 0)
            sum += A[i];
    }
    cout << sum << endl;
    delete[] A;
    system("pause");
    return 0;
}
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
23.05.2021, 08:23
Цитата Сообщение от Volga_ Посмотреть сообщение
думаю, что на основе условии вашей задачи нам нужен тип long long для переменной sum вместо int. Потому что сумма элементов, которые в типе int, может быть превышать лимита типа int.
по условию задачи 1<=N<=1000, -10000<=A[i]<=10000, максимальная сумма 107 вполне достаточно int

Добавлено через 2 минуты
Цитата Сообщение от Volga_ Посмотреть сообщение
if (A[i] >= 0)
ноль суммировать не нужно if (A[i] > 0)
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5208 / 2925 / 1509
Регистрация: 14.12.2018
Сообщений: 5,266
Записей в блоге: 1
23.05.2021, 09:11
Yetty, согласен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.05.2021, 09:11
Помогаю со студенческими работами здесь

сумма положительных чисел
Помогите пожалуйста составить программу, которая вычисляет и выводит на экран сумму первых N членов ряда:2, 4, 6, 8...Оформить вычисление в...

Сумма N целых положительных чисел
Доброго времени суток. Срочно нужна помощь в написании программы на С++, а именно-Написать программу которая вычисляет сумму N целых...

Сумма двух положительных чисел
На стандартном потоке ввода задаются два положительных целых числа. Известно, что их сумма меньше, чем 264. Напишите программу, которая на...

сумма положительных чисел матрицы
Во входном файле построчно задана матрица целых величин, причем первой строкой явл размерности матрицы. 1)Подсчитать сумму положительных...

Сумма, положительных чисел последовательности, оканчивающихся на 9
Напишите программу, которая в последовательности натуральных чисел определяет сумму, положительных чисел, оканчивающихся на 9. Программа...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru