/* * File: findcoin.c * ---------------- * This program uses a search operation to report the names of * legal U.S. coins. */ #include #include #include "simpio.h" #include "genlib.h" /* * Global variables * ---------------- * coinNames -- Array containing the corresponding coin names * coinValues -- Array containing the value of each coin * nCoins -- Number of distinct coins */ static string coinNames[] = { "penny", "nickel", "dime", "quarter", "half-dollar", }; static int coinValues[] = { 1, 5, 10, 25, 50 }; static int nCoins = sizeof coinValues / sizeof coinValues[0]; /* Private function declarations */ static int FindIntegerInArray(int key, int array[], int n); /* Main program */ main() { int value, index; printf("This program looks up names of U.S. coins.\n"); printf("Enter coin value: "); value = GetInteger(); index = FindIntegerInArray(value, coinValues, nCoins); if (index == -1) { printf("There is no such coin.\n"); } else { printf("That's called a %s.\n", coinNames[index]); } } /* * Function: FindIntegerInArray * Usage: index = FindIntegerInArray(key, array, n); * ----------------------------------------------- * This function returns the index of the first element in the * specified array of integers that matches the value key. If * key does not appear in the first n elements of the array, * FindIntegerInArray returns -1. */ static int FindIntegerInArray(int key, int array[], int n) { int i; for (i = 0; i < n; i++) { if (key == array[i]) return (i); } return (-1); }