Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 130

Суммирование вектора (к примеру) первые 5 чисел

25.03.2012, 16:22. Показов 3248. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый, дайте совет как порешать...
поставлена задача:
Написать программу, считывающую ряд чисел и записывающую их в vector<int>. После того как пользователь введет все числа, он может попытаться определить, сколько чисел он ввел, чтобы найти их сумму. Выведите ответ N равный количеству элементов в векторе.
Например:
"Пожалуйста, введите несколько чисел (для прекращения ввода введите |)
>12 23 13 24 15 |
"Пожалуйста, введите количество чисел, которые хотите просуммировать (начиная с первого):"
>3
"Сумма первых 3 чисел: 12, 23 и 13 равна 48."
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
    vector <int> digits;
    int temp;
    while (cin >> temp)
        digits.push_back(temp);
    int sum = 0;
    for (int i = 0; i < digits.size(); ++i)
    {
        sum += digits[i];
        cout << digits[i] << '\t';
    }
    cout << '\n' << '\n' << sum;
    return 0;
}
все вроде норма, суммирует и т.д. в общем делает то что надо, но...
как сделать это:
"Пожалуйста, введите количество чисел, которые хотите просуммировать (начиная с первого):"
>3
"Сумма первых 3 чисел: 12, 23 и 13 равна 48."
спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2012, 16:22
Ответы с готовыми решениями:

Нужно вычленить из заданного вектора первые 5 положительных чисел
Задан вектор V= Нужно найти произведение и сумму первых пяти положительных чисел. Никак не могу вычленить первые 5 полож.чисел....

Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора
Дано вектор В, состоящий из N действительных чисел. Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые...

Составить третий вектор таким образом, чтобы его первые пять компонент были равны компонентам вектора a
Из двух векторов a и b размерностью n=10 составить третий вектор c таким образом, чтобы его первые пять компонент были равны компонентам...

12
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
25.03.2012, 16:48
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"
#include "vector"
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    int temp;
    int k;
    int sum = 0;
    cout << "Пожалуйста, введите несколько чисел (для прекращения ввода введите -1)\n";
    vector <int> digits;
    while (cin >> temp, temp != -1)
    {
        digits.push_back(temp);
    }
    cout << "Пожалуйста, введите количество чисел, которые хотите просуммировать (начиная с первого):\n";
    cin >> k;
    vector<int>::iterator i;
    for(i = digits.begin(); i != digits.end() - digits.size() + k; ++i)
    {
        sum += *i;
    }
 
    cout << "Сумма первых " << k << " чисел: ";
    for(i = digits.begin(); i != digits.end() - digits.size() + k; ++i)
    {
        cout << *i << " ";
    }
    cout << "равна " << sum << endl;
    system("pause >> null");
    return 0;
}
Миниатюры
Суммирование вектора (к примеру) первые 5 чисел  
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
25.03.2012, 16:48
C++
1
2
for ( auto it = v.begin() ; n < v.size() && it != v.end() ; ++it ) 
   /* Здесь сами уже */
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
25.03.2012, 16:50
Результат
Миниатюры
Суммирование вектора (к примеру) первые 5 чисел  
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
25.03.2012, 16:55
Цитата Сообщение от Infinity3000 Посмотреть сообщение
for(i = digits.begin(); i != digits.end() - digits.size() + k; ++i)
А если k больше v.size() ?
1
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
25.03.2012, 17:09
Цитата Сообщение от go Посмотреть сообщение
А если k больше v.size() ?

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
#include "iostream"
#include "vector"
 
using namespace std;
 
int main()
{
    setlocale(0,"");
    int temp;
    int k;
    int sum = 0;
    cout << "Пожалуйста, введите несколько чисел (для прекращения ввода введите -1)\n";
    vector <int> digits;
    while (cin >> temp, temp != -1)
    {
        digits.push_back(temp);
    }
    cout << "Пожалуйста, введите количество чисел, которые хотите просуммировать (начиная с первого):\n";
    cin >> k;
    if(k > digits.size() || k < 0)
    {
        cout << "Веденно некоректное значение\n";
        return 0;
    }
    vector<int>::iterator i;
    for(i = digits.begin(); i != digits.end() - digits.size() + k; ++i)
    {
        sum += *i;
    }
 
    cout << "Сумма первых " << k << " чисел: ";
    for(i = digits.begin(); i != digits.end() - digits.size() + k; ++i)
    {
        cout << *i << " ";
    }
    cout << "равна " << sum << endl;
    system("pause >> null");
    return 0;
}
Добавлено через 3 минуты
go, Спасибо
1
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
25.03.2012, 17:12
Результат
Миниатюры
Суммирование вектора (к примеру) первые 5 чисел   Суммирование вектора (к примеру) первые 5 чисел   Суммирование вектора (к примеру) первые 5 чисел  

0
 Аватар для D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 130
25.03.2012, 17:17  [ТС]
Ребят, извиняюсь за наглость, а можно комменты? не совсем все понятно ((
а именно:
Цитата Сообщение от Infinity3000 Посмотреть сообщение
vector<int>::iterator i; //::iterator i - это что такое?
* * * * for(i = digits.begin(); i != digits.end() - digits.size() + k; ++i)
* * * * {
* * * * * * * * sum += *i; // это указатель? или что это
* * * * }
может мне чтоб проще было привести скрины глав которые прочитал? учу по книге
спасибо оперативный отклик ))
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
25.03.2012, 17:18
A accumulate не подходит разве?
C++
1
2
#include <numeric>
int result =std::accumulate( digits.begin(), digits.end(),0);
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
25.03.2012, 17:23
Цитата Сообщение от D_bl_M Посмотреть сообщение
может мне чтоб проще было привести скрины глав которые прочитал?
это приветсвуеться!

Л.Аммерааль - STL для программистов на C++

Начинайте первую главу читать, там как раз о векторах, списках!

Добавлено через 2 минуты
Справочник по C++ STL
Итераторы
0
 Аватар для D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 130
25.03.2012, 17:51  [ТС]
Цитата Сообщение от Infinity3000 Посмотреть сообщение
это приветсвуеться!

Л.Аммерааль - STL для программистов на C++

Начинайте первую главу читать, там как раз о векторах, списках!

Добавлено через 2 минуты
Справочник по C++ STL
Итераторы
спасибо за ссылки, но хотелось бы одну добить...
мне кажется нужно где-то указать в цикле какое кол-во значений суммировать, но не соображу как
вот главы
0
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
25.03.2012, 18:10
Цитата Сообщение от D_bl_M Посмотреть сообщение
мне кажется нужно где-то указать в цикле какое кол-во значений суммировать
ну вот же ж мы указываем

Цитата Сообщение от Infinity3000 Посмотреть сообщение
i != digits.end() - digits.size() + k
Добавлено через 29 секунд
Программа полностью выполняет Ваши требования (смотрите скриншоты)
0
 Аватар для D_bl_M
28 / 28 / 1
Регистрация: 25.03.2012
Сообщений: 130
25.03.2012, 19:45  [ТС]
спасибо, я конечно же смотрел Ваши скриншоты
просто для себя хотел разобраться что и как, ну да ладно, не буду спешить, далее яснее станет, это ведь только начало...
всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.03.2012, 19:45
Помогаю со студенческими работами здесь

В файле из 10 вещественных чисел сделать первые пять чисел последними и наоборот
В файле из 10 вещественных чисел сделать первые пять чисел последними и наоборот.

В файле из 10 вещественных чисел сделать первые пять чисел последними.
В файле из 10 вещественных чисел сделать первые пять чисел последними.

Ввести пять чисел. Вывести первые две цифры чисел.
Ввести пять чисел. Вывести первые две цифры чисел. Использовать свою функцию, которая не возвращает значение.

Как массив подобных чисел, к примеру 20050317, преобразовать в 17-Марта-2005 года
Как массив подобных чисел, к примеру 20050317, преобразовать в 17-Марта-2005 года, т.е. в формат даты. Подскажите кто может,...

Суммирование чисел
помогите не могу разобраться, нужно в JS написать код, чтоб при открытии страницы нужно было вбить одно число, затем другое, а на экран...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru