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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2019, 17:27   #1
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию Сортировки и векторы c++

Всем доброго времени суток, есть задание :Отсортировать по зарплате с помощью поразрядной сортировки от младшего разряда к старшему (LSD). То есть имеется файл с людьми и нужно отсортировать их по одному из критериев. Есть код: [
Код:
#include "pch.h"
#include<iostream>
#include<fstream>
#include<sstream>
#include<cmath>
#include<cstdlib>
#include<string>
#include<list>
#include<vector>
#include<algorithm>
#include<stdexcept>
#include<math.h>


using namespace std;

int raz(int a)
{
	a = abs(a);
	int b = 0;
	while (a > 0)
	{
		a /= 10;
		b++;
	}
	return b;
}


struct people
{
	string surname;
	string position;
	string dateofbirth;
	string WE;
	int Salary;
};


int main()
{
	setlocale(LC_ALL, "Russian");
	const int n = 15;
	vector<people>L;
	ifstream in("people.txt");
	ofstream out("output.txt");
	if (!in)
		cout << n;
	for (int i = 0; i < n; i++)
	{
		in >> L[i].surname;
		in >> L[i].position;
		in >> L[i].dateofbirth;
		in >> L[i].WE;
		in >> L[i].Salary;
	}
	int f, maxRaz = 0;
	for (int i = 0; i < n; i++)
	{
		f = raz(L[i].Salary);
		if (f >= maxRaz)
			maxRaz = f;
	}
	vector < vector<struct people> >V; 
	for (int i = 0; i < maxRaz; i++)
	{
		for (int j = 0; j < n; j++)
		{
			int c = L[j].Salary / pow(10, i), g = c % 10;
			V[g].push_back(L[j]);
		}
		L.clear();
		for (int j = 0; j < 10; j++)
			for (int j1 = 0; j1 < V[j].size(); j1++)
				if (!V[j].empty())
					L.push_back(V[j][j1]);
		V.clear();
	}
	for (int k = 0; k < n; k++) 
	{
		cout << L[k].surname << " " << L[k].position << " " << L[k].dateofbirth << " " << L[k].WE << " " << L[k].Salary << endl;
		out << L[k].surname << " " << L[k].position << " " << L[k].dateofbirth << " " << L[k].WE << " " << L[k].Salary << endl;
	}

	return 0;
}
Однако работать он отказывается https://pp.userapi.com/c855028/v8550...I63YMNPWQY.jpg
Подскажите, пожалуйста, в чем проблема, уже второй вечер пытаюсь
LOkeron вне форума Ответить с цитированием
Старый 28.03.2019, 17:36   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
vector<vector<people>> V(10);
p51x вне форума Ответить с цитированием
Старый 28.03.2019, 17:37   #3
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
vector<vector<people>> V(10);
не помогло, к сожалению
LOkeron вне форума Ответить с цитированием
Старый 28.03.2019, 17:41   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так исправляйте дальше. L у вас абсолютно также тыкается без добавления элементов.
p51x вне форума Ответить с цитированием
Старый 28.03.2019, 17:44   #5
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Ну так исправляйте дальше. L у вас абсолютно также тыкается без добавления элементов.
У меня еще ругается на
Код:
for (int j1 = 0; j1 < V[j].size(); j1++)
и идей у меня абсолютно никаких, именно поэтому я тут
LOkeron вне форума Ответить с цитированием
Старый 28.03.2019, 17:50   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Как ругается?
p51x вне форума Ответить с цитированием
Старый 28.03.2019, 17:56   #7
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Как ругается?
он у меня ругался на знак(функция size возвращает беззнаковое число, поменял int на unsigned int)
Однако это не помогло
LOkeron вне форума Ответить с цитированием
Старый 28.03.2019, 17:57   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Показывайте код, что наисправляли
p51x вне форума Ответить с цитированием
Старый 28.03.2019, 17:57   #9
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Показывайте код, что наисправляли
Код:
#include "pch.h"
#include<iostream>
#include<fstream>
#include<sstream>
#include<cmath>
#include<cstdlib>
#include<string>
#include<list>
#include<vector>
#include<algorithm>
#include<stdexcept>
#include<math.h>


using namespace std;

int raz(int a)
{
	a = abs(a);
	int b = 0;
	while (a > 0)
	{
		a /= 10;
		b++;
	}
	return b;
}


struct people
{
	string surname;
	string position;
	string dateofbirth;
	string WE;
	int Salary;
};


int main()
{
	setlocale(LC_ALL, "Russian");
	const int n = 15;
	vector<people>L(n);
	ifstream in("people.txt");
	ofstream out("output.txt");
	if (!in)
		cout << n;
	for (int i = 0; i < n; i++)
	{
		in >> L[i].surname;
		in >> L[i].position;
		in >> L[i].dateofbirth;
		in >> L[i].WE;
		in >> L[i].Salary;
	}
	int f, maxRaz = 0;
	for (int i = 0; i < n; i++)
	{
		f = raz(L[i].Salary);
		if (f >= maxRaz)
			maxRaz = f;
	}
	vector < vector<struct people> >V(n); 
	for (int i = 0; i < maxRaz; i++)
	{
		for (int j = 0; j < n; j++)
		{
			int c = L[j].Salary / pow(10, i), g = c % 10;
			V[g].push_back(L[j]);
		}
		L.clear();
		for (int j = 0; j < 10; j++)
			for (unsigned int j1 = 0; j1 < V[j].size(); j1++)
				if (!V[j].empty())
					L.push_back(V[j][j1]);
		V.clear();
	}
	for (int k = 0; k < n; k++) 
	{
		cout << L[k].surname << " " << L[k].position << " " << L[k].dateofbirth << " " << L[k].WE << " " << L[k].Salary << endl;
		out << L[k].surname << " " << L[k].position << " " << L[k].dateofbirth << " " << L[k].WE << " " << L[k].Salary << endl;
	}

	return 0;
}
LOkeron вне форума Ответить с цитированием
Старый 28.03.2019, 18:03   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
for (int k = 0; k < n; k++)
До сайза же надо
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пример быстрой сортировки массива строк и сортировки методом выбора Вероника99 Помощь студентам 1 12.12.2016 19:23
Программа, сортирующая исходный одномерный массив целых чисел методами пузырьковой сортировки и сортировки прямым выбором (язык С) igor01 Помощь студентам 7 16.05.2014 23:21
Сравнить эффективность алгоритмов шейкерной сортировки и сортировки слиянием (язык C) Ольга210993 Помощь студентам 2 20.09.2012 13:52
Алгоритмы сортировки пирамидальный(кучей) и быстрой сортировки (с++) mmd12 Помощь студентам 4 17.05.2012 14:14
Векторы demigod82 Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 30.04.2012 20:29