/******************************************************************************************** 02-28.cpp Jim Millard for CO311 ********************************************************************************************/ #include <iostream> #include <string> using namespace std; #include <time.h> void FillWithRand(int [], const int size, const int used); void SetupArray(int array[], const int size); int SearchArray(const int array[], const int size, const int key); void DisplayResults(const int position); void main() { const int MaxSize = 20; int Array[MaxSize]; SetupArray(Array, MaxSize); //setup the array with X numbers cout << "A random list of 20 numbers ranging from 0 to 99 has been created." << endl << "See if you can guess one of them!" << endl; int guess; cout << "Enter a number (0..99, ctrl-d to end): "; while (cin >> guess) { DisplayResults(SearchArray(Array, MaxSize, guess)); cout << "Enter a number (0..99, ctrl-d to end): "; } } void SetupArray(int array[], const int size) { FillWithRand(array, size, size); } int SearchArray(const int array[], const int size, const int key) { int position = -1; //pre set for error/not found message for (int i = 0; i < size; i++) { if (array[i] == key) { position = i; break; //no sense in looking further! } } return position; } void DisplayResults(const int position) { if (position > -1) { cout << "Good guess! The value was found at position " << position << " of the array." << endl; } else { cout << "Bad luck! The value is not in the list!" << endl; } return; } void FillWithRand(int Array[], const int maxsize, const int count) { time_t t; srand((unsigned) time(&t)); for (int i = 0; (i < count) && (i < maxsize); i++) { //generate the new number int newNumber = rand() % 100; //check for duplicates (we don't want any) bool found = false; for (int j = 0; (j < count) && (j < maxsize); j++) if (Array[j] == newNumber) found = true; //if there were no duplicates, save the number, otherwise redo the position if (!found) Array[i] = newNumber; else i--; } return; }