Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка структуры и работа с текстовым файлом 
:(
    Опции темы
1122
  Дата 27.4.2008, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 24.10.2007

Репутация: -1
Всего: нет



Здравствуйте. Помогите разобраться.
Есть текстовой вайл, в котором хранятся 10 лучших результатов соревнований в формате:
имя результат (например: Ira 120\nVasya 100\nPetya 85\n и т.д.)
У меня вопрос. Как правильно считать эти результаты в массив структур, так чтобы в каждом поле была нужная информация без лишних символов.
чтобы при printf("%s %d", &results[0].name, &result[0].time); выводилось "Ira 120"?
А если изначально результаты не отсортированы по возростанию, то как их упорядочить?
Алгоритм понятен:
Считываем результаты в массив структур, сортируем по возростанию этот массив, назад записываем в файл, а вот как эти структуры отсортировать?
Заранее спасибо.

Это сообщение отредактировал(а) 1122 - 27.4.2008, 01:13
PM MAIL   Вверх
JackYF
Дата 27.4.2008, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



fscanf тебе поможет smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
1122
Дата 27.4.2008, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 24.10.2007

Репутация: -1
Всего: нет



Т.е. если я буду считывать из файла например так: 

Код

int b[N]; 
fscanf(fin, "%d", b); 


то из текстового файла вида:
Ira 100\nPetya 200\nVanya 90\n...

Я получу массив с элементами 100 200 90..., а не ASCII-коды символов латинского алфавита, пробелов и знаков конца строки????

Допустим.... хотя что-то мне так не кажется (сейчас к сожалению нету возможности проверить, но раньше я эксперементировал со fscanf'ом и результата нужного не добился... может что не так делал?).

А как тогда отсортировать эту структуру по возростанию\убыванию?

Это сообщение отредактировал(а) 1122 - 27.4.2008, 17:53
PM MAIL   Вверх
JackYF
Дата 27.4.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(1122 @  27.4.2008,  16:50 Найти цитируемый пост)
Допустим.... хотя что-то мне так не кажется

Когда кажется, читай документацию.

Цитата(1122 @  27.4.2008,  16:50 Найти цитируемый пост)
А как тогда отсортировать эту структуру по возростанию\убыванию?

Алгоритмом сортировки.


Это сообщение отредактировал(а) JackYF - 27.4.2008, 19:41


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
1122
Дата 27.4.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 24.10.2007

Репутация: -1
Всего: нет



А структуру можно так же сортировать, как, скажем, массив типа инт, например, методом пузырька?
И как это будет выглядить?
PM MAIL   Вверх
mrbrooks
Дата 27.4.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Имхо массив это массив, структура эти пользовательский тип данных. Тут видимо правильно говорить о массиве структур.
PM MAIL   Вверх
opjox
Дата 27.4.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 17.1.2008

Репутация: 2
Всего: 14



Цитата(1122 @  27.4.2008,  19:46 Найти цитируемый пост)
А структуру можно так же сортировать


В смысле массив структур? Если да, то:
Цитата(1122 @  27.4.2008,  19:46 Найти цитируемый пост)
можно так же сортировать

Да. Единственное, что потребуется добавить это функцию для сравнения двух структур или переопределить оператор сравнения для структуры данного типа. Все остальное тоже самое. 

Хотя есть одно «но». Если структура много «весит», то следует реализовать сортировку без постоянного перемещения, а провести только одно перемещение (копирование) по окончанию сортировки.

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.