/* ECP: FILEname=fig7_25.c */ /* 1*/ #include /* 2*/ #include /* 3*/ /* Print Non-Duplicates: Array Has N Items */ /* 4*/ /* Since We Do Not Know N, TmpArray Is Dynamically Allocated */ /* 5*/ /* However, We Must Now Remember To free The Memory! */ /* 6*/ /* Array Is Left Untouched */ /* 7*/ void /* 8*/ PrintNondup( const int Array[ ], const unsigned int N ) /* 9*/ { /*10*/ int *TmpArray; /* A Temporary Array */ /*11*/ int i; /*12*/ TmpArray = malloc( sizeof( int ) * N ); /*13*/ if( TmpArray == NULL ) /*14*/ Error( "No memory for temporary array" ); /*15*/ for( i = 0; i < N; i++ ) /* Copy Into TmpArray */ /*16*/ TmpArray[ i ] = Array[ i ]; /*17*/ Shellsort( TmpArray, N ); /* Sort TmpArray */ /*18*/ printf( "%d", TmpArray[ 0 ] ); /*19*/ for( i = 1; i < N; i++ ) /*20*/ if( TmpArray[ i ] != TmpArray[ i - 1 ] ) /*21*/ printf( " %d", TmpArray[ i ] ); /*22*/ printf( "\n" ); /*23*/ free( TmpArray ); /* Must free The Array Now */ /*24*/ }