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

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

28.06.2014, 16:17. Показов 1037. Ответов 16
Метки нет (Все метки)

Помогите срочно решить задачу на экзамене сижу!!!
В одномерном массиве посчитать сумму эллементов после минимального
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2014, 16:17
Ответы с готовыми решениями:

В одномерном массиве посчитать сумму элементов до минимального.
сейчас сижу на экзамене и попалась задача: В одномерном массиве посчитать сумму элементов до...

В одномерном массиве посчитать сумму элементов до минимального
Помогите написать программу. В одномерном массиве посчитать сумму элементов до минимального....

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

В одномерном целочисленном массиве вычислить сумму элементов, расположенных после минимального элемента
Ребят помогите найти ошибку в коде ...Заранее спасибо!!! Тема:ОБРАБОТКА СТАТИЧЕСКИХ МАССИВОВ...

16
571 / 539 / 280
Регистрация: 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;
}
0
0 / 0 / 0
Регистрация: 27.12.2013
Сообщений: 31
28.06.2014, 16:41  [ТС] 3
std::vector <int> ivec = {1,4,-3,5,6,7,8}; в этой строке выдаёт ошибку
0
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
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;
}
0
571 / 539 / 280
Регистрация: 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;
0
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
28.06.2014, 17:16 6
cooller, А что, если отсортированный массив выглядит так - 1 1 1 2 3? Я проверил. Вывело 5, как и надо.
0
571 / 539 / 280
Регистрация: 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, и сумма будет считаться начиная со второго элемента
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 17:22 8
ответом должно быть 5, так как минимальный = 0
Миниатюры
В одномерном массиве посчитать сумму эллементов после минимального  
0
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
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 Что вас не устраивает?
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 17:38 10
Sh@dow777, да сортировать не нужно! изменяется первоначальный массив и теряется смысл задания
0
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
28.06.2014, 17:41 11
cooller, Но задание же я выполнил. Выводит то, что нужно ТС.
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 17:43 12
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Но задание же я выполнил. Выводит то, что нужно ТС.
нет, ты не выполнил задание
точней выполнил, но не верно
0
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
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;
}
0
Don't worry, be happy
17208 / 10085 / 1946
Регистрация: 27.09.2012
Сообщений: 25,164
Записей в блоге: 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 Посмотреть сообщение
Выводит то, что и выводило.
Потому что Вы сравниваете(не понятно зачем) с минимальным все элементы и суммируете их, а необходимо суммировать только те, которые идут после него.
0
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
28.06.2014, 18:13 15
Цитата Сообщение от Croessmah Посмотреть сообщение
рассмотрим последовательность 5 -8 2 4
минимальный элемент здесь это -8, считаем сумму элементов после него, получаем 2+4 = 6
Да почему вы 5 не считаете? он же тоже после минимального стоит.

Добавлено через 1 минуту
Аааа, все, до меня дошло. Простите, я тугодум
0
571 / 539 / 280
Регистрация: 25.12.2013
Сообщений: 1,456
28.06.2014, 18:14 16
Croessmah, думаю проще с ним согласиться
0
17 / 17 / 6
Регистрация: 10.12.2013
Сообщений: 740
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;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2014, 18:19

В одномерном массиве посчитать сумму элементов после последнего положительного элемента
Народ помогите я сижу на экзамене..сделайте простенькую прогу в с++(билдере).В одномерном массиве...

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

В одномерном массиве вывести сумму элементов,стоящих после минимального
Выводит значки по таблице аски org 100h Start: Stage_1: mov ah,$09 mov...

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


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

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

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