#include <stdio.h>
#include <string.h>
#define N 3
struct Train
{
char *nazn;
int number;
int time;
};
void fill( struct Train *a )
{
printf( "Enter %d elements:\n", N );
unsigned int index;
for( index = 0; index < N; index++ )
{
printf( "=========== %d ===========\n", index + 1 );
printf( "Name: " );
a[ index ].nazn = ( char* )malloc( 255 );
scanf( "%s", a[ index ].nazn );
printf( "Number: " );
scanf( "%d", &a[ index ].number );
printf( "Time( hours ): " );
scanf( "%d", &a[ index ].time );
}
}
void sort( struct Train *a )
{
struct Train temp;
unsigned int i, j;
for( i = 0; i < N - 1; i++ )
for( j = i + 1; j < N; j++ )
if ( a[ i ].number > a[ j ].number )
{
temp = a[ i ];
a[ i ] = a[ j ];
a[ j ] = temp;
}
}
void print( struct Train *a )
{
printf( "\n=========================\n" );
unsigned int index;
for( index = 0; index < N; index++ )
printf( "%4d%10s%4d\n", a[ index ].number, a[ index ].nazn, a[ index ].time );
printf( "\n=========================\n" );
}
void search( struct Train *a, int n )
{
unsigned int flag = 0, i;
for( i = 0; !flag && i < N; i++ )
if ( a[ i ].number == n )
{
printf( "Destination: %s\nTime( hours ): %d\n", a[ i ].nazn, a[ i ].time );
flag = 1;
}
if ( !flag )
printf( "Not exist\n" );
}
void main( void )
{
struct Train *arr = ( struct Train* )malloc( N * sizeof( struct Train ) );
fill( arr );
print( arr );
sort( arr );
print( arr );
int number;
printf( "Enter number of train: " );
scanf( "%d", &number );
search( arr, number );
free( arr );
}