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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2010, 14:28   #1
Slimikus
Новичок
Джуниор
 
Регистрация: 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.
Slimikus вне форума Ответить с цитированием
Старый 30.04.2010, 15:40   #2
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Минимальный по размеру, отформатированный код приложите пожалуйста. Тогда может и поможет кто-нибудь.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
алгоритм сортировки «вставкой» 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