/** * test2.c - A more interactive tester for binary search. */ #include "bs.h" #include #include #define MAX_VALUES 64 void report (int value, int values[], int count) { printf ("The position of %d is %d.\n", value, binary_search (value, values, count)); } // report int min (int x, int y) { return x < y ? x : y; } // min int main (int argc, char **argv) { int values[MAX_VALUES]; int count = min (argc-1, MAX_VALUES); int value; int check; int i; // Fill in the values array for (i = 0; i < count; i++) values[i] = atoi (argv[i+1]); // Print out summary printf ("Values: "); for (i = 0; i < count; i++) printf ("%4d", values[i]); printf ("\n"); printf ("Indices: "); for (i = 0; i < count; i++) printf ("%4d", i); printf ("\n\n"); // Prompt for values and print their positions printf ("> "); while ((check = scanf ("%d", &value)) != EOF) { if (!check) printf ("Invalid character: %c\n", getchar ()); else report (value, values, count); printf ("> "); } return EXIT_SUCCESS; } // main ()