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

В одномерном массиве посчитать сумму эллементов после минимального - C++

Восстановить пароль Регистрация
 
vozhd23
0 / 0 / 0
Регистрация: 27.12.2013
Сообщений: 31
28.06.2014, 16:17     В одномерном массиве посчитать сумму эллементов после минимального #1
Помогите срочно решить задачу на экзамене сижу!!!
В одномерном массиве посчитать сумму эллементов после минимального
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2014, 16:17     В одномерном массиве посчитать сумму эллементов после минимального
Посмотрите здесь:

В одномерном массиве посчитать сумму элементов после последнего положительного элемента C++
Как посчитать сумму и разность чисел в одномерном массиве? C++
C++ В одномерном массиве посчитать сумму элементов до максимального.
В одномерном массиве посчитать сумму элементов до минимального. C++
В одномерном массиве вычислить количество отрицательных элементов и сумму модулей элементов, расположенных после минимального по модулю элемента C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 16:24     В одномерном массиве посчитать сумму эллементов после минимального #2
vozhd23,
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<vector>
#include<algorithm>
#include<iterator>
#include<numeric>
int main()
{
    std::vector <int> ivec = {1,4,-3,5,6,7,8};
    std::copy(ivec.begin(),ivec.end(),std::ostream_iterator<int> (std::cout," "));
    std::cout<<"\nsum: "<<std::accumulate(std::min_element(ivec.begin(),ivec.end())+1,ivec.end(),0);
    return 0;
}
vozhd23
0 / 0 / 0
Регистрация: 27.12.2013
Сообщений: 31
28.06.2014, 16:41  [ТС]     В одномерном массиве посчитать сумму эллементов после минимального #3
std::vector <int> ivec = {1,4,-3,5,6,7,8}; в этой строке выдаёт ошибку
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
28.06.2014, 17:05     В одномерном массиве посчитать сумму эллементов после минимального #4
vozhd23, Вот так попробуйте. На самом деле можно не сортировать, но мне что то захотелось
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
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int a[1000];
 
int main()
{
    int n, i;
    int s = 0;
    srand(time(0));
 
    cin >> n;
 
    for(i = 0;i < n;i++){
        a[i] = rand() % 10;
        cout << a[i] << " ";
    }
    cout << endl;
 
    sort(a,a+n);
 
    for(i = 0;i < n;i++){
        if(a[i] > a[0])
        s += a[i];
    }
 
    cout << s << endl;
 
    system("pause");
 
    return 0;
}
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 17:15     В одномерном массиве посчитать сумму эллементов после минимального #5
Sh@dow777, после сортировки минимальный элемент станет первым, значит сумма будет тупо цикл по всем элементам кроме первого, а это не правильно, имхо
с таким же успехом можно было просуммировать весь массив начальный и вычесть минимальный элемент, что не соотвецтвует условию задачи

Добавлено через 3 минуты
Цитата Сообщение от vozhd23 Посмотреть сообщение
std::vector <int> ivec = {1,4,-3,5,6,7,8}; в этой строке выдаёт ошибку
нет поддержки с++ 11
замени на
C++
1
2
3
4
    const size_t size  = 5;
    std::vector <int> ivec(size);
    for(std::vector<int>::iterator it=ivec.begin();it!=ivec.end();++it)
        std::cin>>*it;
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
28.06.2014, 17:16     В одномерном массиве посчитать сумму эллементов после минимального #6
cooller, А что, если отсортированный массив выглядит так - 1 1 1 2 3? Я проверил. Вывело 5, как и надо.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 17:20     В одномерном массиве посчитать сумму эллементов после минимального #7
Sh@dow777, к примеру, имеется массив: 1 2 3 4 - 1 5 6 7 8
результатом должно быть : 5 + 6 + 7 + 8 = 26, а в вашем случае будем массив: -1 1 2 3 4 5 6 7 8, и сумма будет считаться начиная со второго элемента
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 17:22     В одномерном массиве посчитать сумму эллементов после минимального #8
ответом должно быть 5, так как минимальный = 0
Миниатюры
В одномерном массиве посчитать сумму эллементов после минимального  
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
28.06.2014, 17:33     В одномерном массиве посчитать сумму эллементов после минимального #9
cooller, Внимательно задание прочтите. В одномерном массиве посчитать сумму эллементов после минимального.
Цитата Сообщение от cooller Посмотреть сообщение
-1 1 2 3 4 5 6 7 8
Минимальный - -1. Потом идет сумма 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36 Что вас не устраивает?
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 17:38     В одномерном массиве посчитать сумму эллементов после минимального #10
Sh@dow777, да сортировать не нужно! изменяется первоначальный массив и теряется смысл задания
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
28.06.2014, 17:41     В одномерном массиве посчитать сумму эллементов после минимального #11
cooller, Но задание же я выполнил. Выводит то, что нужно ТС.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 17:43     В одномерном массиве посчитать сумму эллементов после минимального #12
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Но задание же я выполнил. Выводит то, что нужно ТС.
нет, ты не выполнил задание
точней выполнил, но не верно
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
28.06.2014, 17:57     В одномерном массиве посчитать сумму эллементов после минимального #13
Он сортируется. Элементы же не изменяются. Я считаю, что мой вариант тоже верный.

Добавлено через 1 минуту
cooller, Хорошо, я сейчас переделаю и покажу, что выводить будет то же самое.

Добавлено через 10 минут
cooller, Вот, я переделал. Выводит то, что и выводило.
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
#include <iostream>
using namespace std;
 
int a[1000];
 
int main()
{
    int n, i;
    int s = 0;
 
    cin >> n;
 
    for(i = 0;i < n;i++)
        cin >> a[i];
 
    cout << endl;
 
    int min = a[0];
 
    for(i = 0;i < n;i++){
        if(a[i] < min)
            min = a[i];
    }
    for(i = 0;i < n;i++){
        if(a[i] > min)
        s += a[i];
    }
 
    cout << s << endl;
 
    system("pause");
 
    return 0;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11820 / 6799 / 769
Регистрация: 27.09.2012
Сообщений: 16,875
Записей в блоге: 2
Завершенные тесты: 1
28.06.2014, 18:03     В одномерном массиве посчитать сумму эллементов после минимального #14
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Он сортируется. Элементы же не изменяются. Я считаю, что мой вариант тоже верный.
рассмотрим последовательность 5 -8 2 4
минимальный элемент здесь это -8, считаем сумму элементов после него, получаем 2+4 = 6
теперь посмотрим как работает Ваш алгоритм с этой последовательностью. Сначала она сортируется, то есть получаем
-8 2 4 5
далее в цикле проходим по всем элементам и сравниваем с нулевым, если больше, то прибавляем к общей сумме, поэтому получаем 2+4+5 = 11

разница видна?

Добавлено через 2 минуты
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Выводит то, что и выводило.
Потому что Вы сравниваете(не понятно зачем) с минимальным все элементы и суммируете их, а необходимо суммировать только те, которые идут после него.
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
28.06.2014, 18:13     В одномерном массиве посчитать сумму эллементов после минимального #15
Цитата Сообщение от Croessmah Посмотреть сообщение
рассмотрим последовательность 5 -8 2 4
минимальный элемент здесь это -8, считаем сумму элементов после него, получаем 2+4 = 6
Да почему вы 5 не считаете? он же тоже после минимального стоит.

Добавлено через 1 минуту
Аааа, все, до меня дошло. Простите, я тугодум
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 18:14     В одномерном массиве посчитать сумму эллементов после минимального #16
Croessmah, думаю проще с ним согласиться
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2014, 18:19     В одномерном массиве посчитать сумму эллементов после минимального
Еще ссылки по теме:

В одномерном целочисленном массиве вычислить сумму элементов, расположенных после минимального элемента C++
C++ В одномерном массиве, состоящем из вещественных элементов вычислить номер минимального элемента в массиве, сумму элементов массива
C++ В одномерном массиве посчитать сумму элементов

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

Или воспользуйтесь поиском по форуму:
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
28.06.2014, 18:19     В одномерном массиве посчитать сумму эллементов после минимального #17
cooller, Да все, я понял. Вот тогда
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
#include <iostream>
using namespace std;
 
int a[1000];
 
int main()
{
    int n, i;
    int s = 0;
 
    cin >> n;
 
    for(i = 0;i < n;i++)
        cin >> a[i];
 
    cout << endl;
 
    int min = a[0];
    int imin = 0;
 
    for(i = 0;i < n;i++){
        if(a[i] < min){
            min = a[i];
            imin = i;
        }
    }
    for(i = imin;i < n;i++)
        s += a[i];
 
    cout << s << endl;
 
    system("pause");
 
    return 0;
}
Yandex
Объявления
28.06.2014, 18:19     В одномерном массиве посчитать сумму эллементов после минимального
Ответ Создать тему
Опции темы

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