#include "library.h" const string words[] = { "ant", "dog", "zebu" }; const string definitions[] = { "picnic insect", "annoying animal", "mystery animal" }; const int size_words = sizeof(words) / sizeof(string); const int size_definitions = sizeof(definitions) / sizeof(string); // BINARY CHOP SEARCH int find(const string query, const int first, const int last) { if (first > last) return -1; const int middle = (first + last) / 2; const string found = words[middle]; if (query == found) return middle; if (query < found) return find(query, first, middle - 1); return find(query, middle + 1, last); } void test() { cout << "Type a string: "; const string x = read_string(); const int result = find(x, 0, size_words - 1); if (result == -1) cout << x << " was not found\n"; else cout << words[result] << ": " << definitions[result] << "\n"; test(); } void main() { if (size_words != size_definitions) { cout << "Number of words does not match number of definitions\n"; return 0; } test(); }