#include #include #include #define SZ 10 void fillArray( int List[], unsigned int Sz); unsigned int squeezeOutOdds(int List[], unsigned int Usage); int main() { int A[SZ]; fillArray(A, SZ); for (int i = 0; i < SZ; i++) { printf("%3d:%5d\n", i, A[i]); } unsigned int numEvens = squeezeOutOdds(A, SZ); for (int i = 0; i < numEvens; i++) { printf("%3d:%5d\n", i, A[i]); } return 0; } void fillArray(int List[], unsigned int Size) { srand( (unsigned int) time(NULL) ); for (int pos = 0; pos < Size; pos++) { List[pos] = rand() % 1000; } } unsigned int squeezeOutOdds(int List[], unsigned int Usage) { unsigned int Trailer = 0; while ( Trailer < Usage && List[Trailer] % 2 == 0 ) ++Trailer; if ( Trailer == Usage ) return Trailer; unsigned int Leader = Trailer + 1; while ( Leader < Usage ) { if ( List[Leader] % 2 == 0 ) { List[Trailer] = List[Leader]; ++Trailer; } ++Leader; } return Trailer; }