Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2015, 14:27   #1
Misa
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию C++ vector segmentation fault

Нужно, чтобы считалось среднее арифметическое по массиву и потом, числа из массива, сравниваясь с этим средне арифметическим, раскидались по 2м новым массивам.
Проблема в том, что при выводе чисел в массиве показывает аброкадабру. Отловить не получилось. Размер динамических массивов - если не натыкаюсь на segmentation fault - верный. Пробовала выводить при помощи итераторов, то же самое. В чем ошибка?

Код:
#include <cstdlib>
#include <iostream>
#include <vector>

using namespace std;
int main(int argc, char** argv) {
const int num =  7; // размер массива
int A [num]= {2,5,100,5,29,5,2};
int sum;
int i;//счетчик
for (sum = 0, i = 0; i<num; sum += A[i], i++);
cout << sum << endl;
int srar = sum/num;//среднее арифметическое
cout << srar << endl;
vector <int> DynLess;
vector <int> DynMore;
for (i=0; i<num; i++)
{
  
if (A[i] < srar)
{
    DynLess.push_back(A[i]);
}
else
{
    DynMore.push_back(A[i]);   
}

}    
cout << "masive melkih" << " " << DynLess[i] <<" " << endl;
cout << "razmer massiva melkih" << " " << DynLess.size()<<endl;
cout << "masive bol'shih" << " " << DynMore[i] <<" " << endl;
cout << "razmer massiva bol'shih" << " " << DynMore.size()<<endl;
   return 0;
}

Последний раз редактировалось Stilet; 08.01.2015 в 16:16.
Misa вне форума Ответить с цитированием
Старый 08.01.2015, 15:53   #2
igoreshka3333
Форумчанин
 
Аватар для igoreshka3333
 
Регистрация: 26.09.2014
Сообщений: 176
По умолчанию

Та вроде выводит цифры нормально( borland builder )
Изображения
Тип файла: jpg Безымянный.jpg (25.3 Кб, 124 просмотров)
igoreshka3333 вне форума Ответить с цитированием
Старый 08.01.2015, 16:11   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Код:
cout << "masive melkih" << " " << DynLess[i] <<" " << endl;
...
cout << "masive bol'shih" << " " << DynMore[i] <<" " << endl;
У вас в этих векторах не гарантируется все элементы от 0 до num, а вы их выводить пытаетесь.
p51x вне форума Ответить с цитированием
Старый 08.01.2015, 17:26   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
cout << "masive melkih" << " " << DynLess[i] <<" " << endl;
...
cout << "masive bol'shih" << " " << DynMore[i] <<" " << endl;
У вас в этих векторах не гарантируется все элементы от 0 до num, а вы их выводить пытаетесь.
Более того, они находятся за пределами цикла. В данном случае, i указывает на число, находящееся за пределами массива num т.к. предыдущий цикл for закончился корректно.
Вот, примерно так:

Код:
cout << "razmer massiva melkih" << " " << DynLess.size()<<endl;
cout << "masive melkih  ";
for(i = 0; i < DynLess.size(); i++) cout << " " << DynLess[i] <<" ";
cout << endl << endl;
cout << "razmer massiva bol'shih" << " " << DynMore.size()<<endl;
cout << "masive bol'shih  ";
for(i = 0; i < DynMore.size(); i++) cout << " " << DynMore[i] <<" " ;
cout << endl << endl;
system("pause");
Да и счётчик должен быть типа unsigned int.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 08.01.2015 в 17:47.
Smitt&Wesson вне форума Ответить с цитированием
Старый 08.01.2015, 19:02   #5
Misa
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

Да, счетчик уже переделала, тоже через размер, заработало.
Спасибо)
Misa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Segmentation fault (core dumped) gunsoy Общие вопросы C/C++ 4 17.02.2014 11:07
Segmentation fault Hemul Общие вопросы C/C++ 7 16.08.2011 03:23
Vector, Pair и segmentation fault certman Общие вопросы C/C++ 3 25.03.2010 00:24
QT4 segmentation fault jojahti Qt и кроссплатформенное программирование С/С++ 6 06.01.2010 09:57
GCL и segmentation fault. jojahti Свободное общение 0 14.09.2009 19:20