|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.04.2010, 14:28 | #1 |
Новичок
Джуниор
Регистрация: 30.04.2010
Сообщений: 1
|
Структура, сортировка вставкой
Доброго времени суток!
У меня возникла проблема. Не могу понять как заставить работать сортировку в структуре по возрасту. Вот код: #include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> FILE *fl; typedef struct { char kom[30]; char fio[30]; int voz; } TSport; TSport sport[30]; // Массив структур char name[20]; // Имя файла int nst = 0; // Число введённых структур int Menu(); // Создание меню void Nnf(); // Ввод имени файла void Newf(); // Создание нового файла void Spisok(); // Открытие файла void Opf(); // Вывод результата на экран void Sort(); // Сортировка вставкой void Result(); // Вывод результата int main() { while (true) { switch (Menu()) { case 1: Nnf(); break; case 2: Newf(); break; case 3: Spisok(); break; case 4: Opf(); break; case 5: Sort(); break; case 6: Result(); break; case 7: return 0; default: puts("Viberite pravilno!"); } puts ("Press any key to continue"); getch (); system ("cls"); } } int Menu() { cout << "VIBERITE:" << endl; cout << "1. Vvod file name" << endl; cout << "2. New file" << endl; cout << "3. Vvesti spisok" << endl; cout << "4. Prosmotr dannih" << endl; cout << "5. Sortirovka vstavkoy" << endl; cout << "6. Resultat sortirovki" << endl; cout << "7. Exit" << endl; int i; cin >> i; return i; } void Nnf() // Ввод имени файла void Newf() // Создание нового файла void Spisok() // Ввод данных в файл { if ((fl = fopen(name,"rb+")) == NULL) { cout << "Oshibka pri sozdanii" << endl; exit(1); } cout << "Vvedite chislo komand" << endl; cin >> nst; for (int i=0; i<nst; i++) { cout << "Vvedite nazvanie komandu: "; cin >> sport[i].kom; cout << "Vvedite FIO: "; cin >> sport[i].fio; cout << "Vvedite vozrast: "; cin >> sport[i].voz; fwrite (&sport[i], sizeof(TSport), 1, fl); } fclose (fl); } void Opf() // Открытие файла void Sort() // Сортировка вставкой { int i, j, t; for(i=1; i<nst; i++) { t = sport[i].voz; for (j = i-1; j >= 0 && t < sport[j].voz; j--) sport[j+1].voz =sport[j].voz; sport[j+1].voz = t; } } void Result() // Вывод результата { if ((fl = fopen (name,"rb")) == NULL) { cout << "Oshibka pri otkritii" << endl; exit(1); } nst = 0; TSport std; while (true) { int nwrt = fread (&std, sizeof(TSport), 1, fl); if (nwrt != 1) break; sport[nst] = std; cout << sport[nst].voz << endl; nst++; } fclose(fl); } Спасибо всем кто поможет! Последний раз редактировалось Slimikus; 30.04.2010 в 16:15. |
30.04.2010, 15:40 | #2 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
Минимальный по размеру, отформатированный код приложите пожалуйста. Тогда может и поможет кто-нибудь.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
алгоритм сортировки «вставкой» | curly182 | Помощь студентам | 2 | 19.10.2009 22:56 |
Помогите с вставкой рисунка | fire_on | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 09.10.2009 01:14 |
Сортировка вставкой | MAKEDON | Общие вопросы C/C++ | 1 | 26.04.2009 12:30 |
структура+сортировка | alexov | Общие вопросы C/C++ | 1 | 27.01.2009 12:27 |
Косяки со вставкой в эдит | joker | Общие вопросы Delphi | 1 | 14.09.2008 09:00 |