Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 29.09.2013, 19:39   #1
Chainik!
Форумчанин
 
Регистрация: 10.11.2008
Сообщений: 120
По умолчанию Сортировка Структуры

Не получается отсортировать по группе по возрастанию!


Код:
#include "stdafx.h"
#include "iostream"
#include "iomanip"
#include "conio.h"
using namespace std;
int n;
//-------------------------------------
struct Student
{
	char name[20];
	int group;
	int progress[5];
};
//-------------------------------------
void print(const Student &V)
{
	cout << "\n\nName: " << V.name;
	cout << "\n\nGruppa: " << V.group;
	cout << "\n\nUspevaemost: ";
	for(int i = 0; i < 5; i++)
		cout << V.progress[i] << setw(3);
}
//-------------------------------------
void sort(const Student &V)
{
	Student **t;
	Student *x;
	for(int i = 0; i < n; i++)
	{
		for(int j = i + 1; j < n; j++)
		{
			if(t[i] ->group > t[j] ->group)
			{
				x = t[i];
				t[i] = t[j];
				t[j] = x;
			}
		}
	}
}
//-------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{

	n = 0;
	cout << "Vvedite kolichestvo studentov: ";
	cin >> n;
	Student *V = new Student[n];
	for(int i = 0; i < n; i++)
	{
		cout << "\n\nVvedite name: ";
		cin >> V[i].name;
		cout << "\n\nVvedite gruppu: ";
		cin >> V[i].group;
		cout << "\n\nVvedite evalition: \n\n";
		for(int j = 0; j < 5; j++)
		{
			cout << "-> ";
			cin >> V[i].progress[j];
		}
	}
	for(int i = 0; i < n; i++)
		print(V[i]);
	cout << "\n\n";
	delete [] V;
	_getch();
	return 0;
}
Chainik! вне форума Ответить с цитированием
Старый 29.09.2013, 19:39   #2
Chainik!
Форумчанин
 
Регистрация: 10.11.2008
Сообщений: 120
По умолчанию

Выкидывает из программы
Chainik! вне форума Ответить с цитированием
Старый 29.09.2013, 19:50   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Отладчиком не проходил? На каком месте выкидыш?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.09.2013, 20:05   #4
Chainik!
Форумчанин
 
Регистрация: 10.11.2008
Сообщений: 120
По умолчанию

На функции сортировки
Chainik! вне форума Ответить с цитированием
Старый 29.09.2013, 20:45   #5
Chainik!
Форумчанин
 
Регистрация: 10.11.2008
Сообщений: 120
По умолчанию

Я правильно сортирую или нет??

Последний раз редактировалось Chainik!; 29.09.2013 в 20:51.
Chainik! вне форума Ответить с цитированием
Старый 29.09.2013, 20:55   #6
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 5,429
По умолчанию

Вы пытаетесь сортировать элементы массива t (обращаетесь к t[i] в функции), но он ничем не проинициализирован.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 29.09.2013, 20:57   #7
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
	Student **t;
	Student *x;
Тут у вас какие-то массивы, под которые вы не выделяете память и при этом используете. По идее нужно вообще передавать в функцию сортировки не ссылку на один элемент, а указатель на массив и размер массива. Должно быть что-то такое:
Код:
void sort(Student* t, int n)
{
	Student x;
	for(int i = 0; i < n; i++)
	{
		for(int j = i + 1; j < n; j++)
		{
			if(t[i].group > t[j].group)
			{
				x = t[i];   //Простое = тут не покатит, нужно копировать строки через strcpy. Вы должны или перегрузить operator= для структуры студента, или написать функцию swap, которая меняла бы местами два экземпляра структуры с копированием строки
				t[i] = t[j];
				t[j] = x;
			}
		}
	}
}
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 29.09.2013, 21:05   #8
Chainik!
Форумчанин
 
Регистрация: 10.11.2008
Сообщений: 120
По умолчанию

Огромное спасибо Гром

Последний раз редактировалось Chainik!; 29.09.2013 в 21:23.
Chainik! вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C]. Сортировка структуры M_Asja Помощь студентам 0 20.01.2013 21:02
Сортировка структуры Proger_1 Win Api 2 04.12.2012 20:45
сортировка структуры Си jana89 Общие вопросы C/C++ 5 27.11.2011 20:48
Сортировка структуры данных CodeNOT Общие вопросы C/C++ 3 27.12.2010 22:24
сортировка структуры vo_sa Общие вопросы C/C++ 1 25.06.2009 14:16