Структуры в СИ

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Fireman
Сообщения: 4
Зарегистрирован: 15 янв 2009, 00:59
Откуда: Russia, Taganrog

Нужно в функции сорт упорядочить строки в структуре по номерам поездов(второй столбец), но я мало представляю как это реализовать. Знающие люди, помогите если не трудно

я вроде как ищу строку с наименьшим номером, а куда дальше плясать не знаю.

Код: Выделить всё

#include <stdio.h>
#include <string.h>
#include <conio.h>
struct TRAIN{
       char NAZN[100];
       int NUMR;
       int TIME;};
void SORT(TRAIN *x);
void NTR(TRAIN x[8]);
int main()
{
clrscr();
TRAIN RASP[8]={	{"MOSCOW",666,20},
		{"TAGANROG",700,14},
		{"KURSK",452,23},
		{"ROSTOV",777,10},
		{"VLADIVOSTOK",123,11},
		{"ST-PETERBURG",545,0},
		{"HOVGOROD",800,12},
		{"IRKUTSK",100,17}};
SORT(RASP);
NTR(RASP);
getch();
return 0;
}

void SORT(TRAIN x[8])
	{
	TRAIN buf;
	int i;
	int min;
	min=x[0].NUMR;
	for(i=1;i<7;i++)
		{
		if(x[i].NUMR<min)min=x[i].NUMR;

		}
	}
for(i=0;i<8;i++)
	{
	printf("----------------------------------------\n");
	printf("%s #: %d TIME: %d\n",x[i].NAZN,x[i].NUMR,x[i].TIME);}
	printf("----------------------------------------\n");
	}

airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

Код: Выделить всё

	TRAIN temp;
	int i,j,imin;
	for(i=0;i<6;i++){
		imin=i;
		for(j=i+1;j<7;j++) if(x[j].NUMR<x[imin].NUMR) imin=j;
		temp=x[i];
		x[i]=x[imin];
		x[imin]=temp;
	}
Fireman
Сообщения: 4
Зарегистрирован: 15 янв 2009, 00:59
Откуда: Russia, Taganrog

спасибо, разобрался
Ответить