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

Почему если массив начинается с положительного числа, то он не суммируется в общую сумму? - C++

Восстановить пароль Регистрация
 
Petax
3 / 2 / 0
Регистрация: 21.10.2013
Сообщений: 22
21.11.2013, 18:29     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму? #1
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
#include <iostream>
 
using namespace std;
int main()
{
    setlocale( LC_ALL,"Russian" );
    cout<<"Введите размер массива"<<endl;
    int size, max, sum;
    cin>>size;
    int* p=new int[size];
    for(int i=0;i<size;i++)
    {
        cout<<"Введите "<<i+1<<" элемент массива"<<endl;
        cin>>p[i];
    }
    cout<<"Ваш массив"<<endl;
    for(int i=0;i<size;i++)
        cout<<p[i]<<" ";
    cout<<endl;
    sum=0;
    for (int i=1; i<size; i++)
    {
        if (p[i]>0)
            sum+=p[i];
    }
    cout<<"Сумма положительных членов последовательности равна "<<sum<<endl;
    max=p[0];
    for (int i=1; i<size; i++)
    {
            if (max<p[i])
                max=p[i];
        }
    cout<<"Наибольший элемент последовательности: "<<max <<endl;
    system ("pause");
    return 0;
}
Почему если массив начинается с положительного числа, то он не суммируется в общую сумму?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2013, 18:29     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму?
Посмотрите здесь:

C++ Одномерный массив А суммируется из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза
Массив: Вычислить сумму элементов массива расположенных до последнего положительного элемента. C++
Найти номер наименьшего положительного числа в заданной последовательности. Если в ней отсутствуют положительные числа, ответом должно быть -1 C++
Определить сумму цифр положительного числа C++
C++ Не работает, если массив динамический ?! Почему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
21.11.2013, 18:33     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму? #2
Цитата Сообщение от Petax Посмотреть сообщение
for (int i=1; i<size; i++) { if (p[i]>0) sum+=p[i]; }
почему 1
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.11.2013, 18:35     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму? #3
Petax,
C++
    for (int i=1; i<size; i++) /// Может быть потому что i = 1
    {
            if (max<p[i])
                max=p[i];
            else 
                max=max;
    }
dero
1 / 1 / 1
Регистрация: 12.10.2012
Сообщений: 39
21.11.2013, 18:37     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму? #4
Инициализация массива с 0 элемента начинается, а проверка с 1:
C++
1
2
for(int i=0;i<size;i++)
for (int i=1; i<size; i++)
Вот исправленный код:

Кликните здесь для просмотра всего текста
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
#include <iostream>
 
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Введите размер массива" << endl;
    int size, max, sum;
    cin >> size;
    int* p = new int[size];
    for (int i = 1; i<=size; i++)
    {
        cout << "Введите " << i << " элемент массива" << endl;
        cin >> p[i];
    }
    cout << "Ваш массив" << endl;
    for (int i = 1; i<=size; i++)
        cout << p[i] << " ";
    cout << endl;
    sum = 0;
    for (int i = 1; i<=size; i++)
    {
        if (p[i]>0)
            sum += p[i];
    }
    cout << "Сумма положительных членов последовательности равна " << sum << endl;
    max = p[0];
    for (int i = 1; i<=size; i++)
    {
        if (max<p[i])
            max = p[i];
        else
            max = max;
    }
    cout << "Наибольший элемент последовательности: " << max << endl;
    system("pause");
    return 0;
}
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.11.2013, 18:40     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму? #5
dero, вы уверены? А что будет с p[i] когда i = size ?
Petax
3 / 2 / 0
Регистрация: 21.10.2013
Сообщений: 22
21.11.2013, 18:40  [ТС]     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму? #6
Спасибо большое.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2013, 18:42     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму?
Еще ссылки по теме:

Найти количество C цифр целого положительного числа K, а также их сумму S C++
Описать процедуру, находящую количество C цифр целого положительного числа K, а также их сумму C++
C++ Одномерный массив, вывод номера положительного числа

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

Или воспользуйтесь поиском по форуму:
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
21.11.2013, 18:42     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму? #7
И вообще, в С++ индексация массивов начинается с 0
Yandex
Объявления
21.11.2013, 18:42     Почему если массив начинается с положительного числа, то он не суммируется в общую сумму?
Ответ Создать тему
Опции темы

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