Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
1

Ввод чисел в вектор

14.06.2018, 05:58. Показов 4891. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: Ввести в вектор значения расстояния, посчитать их сумму, определить наибольшее и наименьшее значения и среднее значение. Вот попытался сделать на ввод чисел в вектор наподобие массива. Но программа начинает виснуть. Знаю, что можно сделать через цикл (вводить по одному значению) и записывать их в конец через
C++
1
push_back();
, но хочется попробовать так. Подскажите, так можно делать или нет? И если можно, то скажите, пожалуйста, где и как можно исправить.

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
40
41
42
43
44
45
46
47
48
#include <iostream> 
#include <vector>
#include <ctime>
#include <algorithm>
#include<string>
#include<cmath>
using namespace std; 
 
int main() {
setlocale(LC_ALL, "rus");
 
int n = 0;
int sum = 0;
double max = 0;
double min = 0; 
vector<double> rass(n);
cout << "Введите количество значений: ";
cin >> n;
cout << "Введите свои значения: \n";
for (int i = 0; i < n; i++) {
        cin >> rass[i]; 
   }
    for (int i = 0; i < n; i++) {
        cout << rass[i] << ' ';
   }
    cout << endl;
 
for (int i = 0; i < rass.size(); i++) {
sum += i;
}
 
for (int i = 0; i < rass.size(); i++) {
    if (rass[i] < min) {
        min = rass[i];
    }
    else if (rass[i] > max) {
        max = rass[i];
    }
}
cout << "Ñóììà ðàâíà: " << sum << endl;
cout << "Наибольшее расстояние: " << max << "\n";
cout << "Наименьшее расстояние: " << min << "\n";
cout << "Среднее расстояние: " << sum/rass.size() << "\n";
 
system("pause");
return 0;
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2018, 05:58
Ответы с готовыми решениями:

Ввод чисел в структуру вектор
Вот готовая программа, которая выводит какие точки могут быть вершинами квадрата, но столкнулся с...

Вектор с неизвестным количеством чисел преобразовать в другой вектор, где числа будут стоять по возрастанию
Вектор с неизвестным количеством чисел нужно превратить в другой вектор, где числа будут стоять по...

задан вектор С, который состоит из 12 действительных чисел. Сформировать вектор D, нечетные элементы которого есть целая часть нечетных
задан вектор С, который состоит из 12 действительных чисел. Сформировать вектор D, нечетные...

Ввод количества чисел, ввод самих чисел с MsgBox и нахождение их суммы
Задача в Excel vba

5
223 / 188 / 97
Регистрация: 15.04.2018
Сообщений: 718
14.06.2018, 08:00 2
Лучший ответ Сообщение было отмечено eganator как решение

Решение

А дебажить не пробывали?

Тогда просто прокомментирую то, что примерно будет выдавать дебаг:

C++
1
2
3
4
5
6
7
8
    int n = 0; //в переменной ноль
    vector<double> rass(n); //создаем вектор длиной в 0 элементов (передали в rass ноль)
    cin >> n; //читаем в n новое значение
    for (int i = 0; i < n; i++) { //проходимся от нуля до n - 1
        cin >> rass[i];  //тут и вылетает, выход за пределы массива SEGM FAULT, если не изменяет память
    //в чем же проблема? Проблема в том, что вектор rass = {} (пуст), а мы пытаемся записать данные в память, которой там нет
    //А всё потому что мы сначала задали размер вектора (ноль), а потом уже размер, который должен был передаваться (например 3)
    }
Как исправить? Да всё просто, вставьте vector<double> rass(n); после cin >> n; и будет вам счастье
2
698 / 105 / 19
Регистрация: 22.06.2014
Сообщений: 234
14.06.2018, 08:32 3
Цитата Сообщение от mvngr Посмотреть сообщение
А дебажить не пробывали?
Диалог:
-- Кем работали раньше?
-- Пробывальщиком дебажинга.
Конец.
0
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
14.06.2018, 14:37  [ТС] 4
mvngr, Спасибо! Теперь всё стало понятно.
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
14.06.2018, 15:51 5
Цитата Сообщение от eganator Посмотреть сообщение
Теперь всё стало понятно.
Вот это не понятно.
Цитата Сообщение от eganator Посмотреть сообщение
for (int i = 0; i < rass.size(); i++) {
sum += i;
}
0
72 / 52 / 8
Регистрация: 13.11.2017
Сообщений: 383
15.06.2018, 05:10  [ТС] 6
Manowar, Да, в курсе. Я исправил эту ошибку.
C++
1
2
for (int i = 0; i < rass.size(); i++) 
sum += rass[i];
Не заметил сначала, когда программа заработала, то увидел. Спасибо.
0
15.06.2018, 05:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2018, 05:10
Помогаю со студенческими работами здесь

Ввод с клавиатуры 7 целых чисел и ввод этих чисел в обратном порядке
Я не могу выполнить одну задачу.Составте задачу для ввода с клавиатуры 7 целых чисел и ввода этих...

Дан целочисленный вектор А(и). Найти наибольшее из нечетных чисел входящих в вектор. Определить его индекс и поменять
Помогите плиз Дан целочисленный вектор А(и). Найти наибольшее из нечетных чисел входящих в вектор....

Ввод из файла в вектор
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;ostream&gt; #include &lt;vector&gt;...

Ввод данных в вектор
Небольшой оффтоп, а как сделать ввод строки (если строка это вектор) с помощью итераторов, то есть...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru