[M-7]
Write a program that examines an integer array of N elements and determines
if all the integers 0..N-1 are in the array. The integers need not be in order.
Return the smallest integer in the range 0..N-1 that is not found in the array,
or -1 if all integers are there.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 99 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Element 32 missing
Here is a testing framework:
#include <stdio.h> #include <stdlib.h> int fullArrayCheck( int size, int arr[] ) { . . . } void fillArrayInOrder( int size, int arr[], int first ) { int j; for ( j=0; j < size; j++ ) { arr[j] = first+j; } } void printArray( int size, int arr[] ) { const int N = 10; int j; for ( j=0; j < size; j++ ) { if ( j%N == N-1 ) printf("%4d\n", arr[j] ); else printf("%4d ", arr[j] ); } } #define SIZE 50 int main() { int x[SIZE] ; int target ; fillArrayInOrder( SIZE, x, 0 ); x[ 32 ] = 99 ; printArray( SIZE, x ); printf("\n"); if ( (target = fullArrayCheck( SIZE, x )) == -1 ) printf("All elements present\n"); else printf("Element %d missing\n", target); return 0; }