//Devin Scheu CS1A Chapter 7, P. 447, #13
//
/**************************************************************
*
* SIMULATE LOTTERY AND CHECK MATCHING DIGITS
* ____________________________________________________________
* This program determines the number of matching digits
* between a randomly generated lottery array and a user array.
* ____________________________________________________________
* INPUT
* userNumbers : The five digits entered by the user
*
* OUTPUT
* lotteryNumbers : The randomly generated lottery array
* matchCount : The number of matching digits
* winMessage : Message proclaiming a grand prize winner if all digits match
*
**************************************************************/
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
using namespace std;
int main () {
//Variable Declarations
const int NUM_DIGITS = 5; //OUTPUT - Number of digits in the lottery
int lotteryNumbers[NUM_DIGITS]; //OUTPUT - The randomly generated lottery array
int userNumbers[NUM_DIGITS]; //INPUT - The five digits entered by the user
int matchCount = 0; //OUTPUT - The number of matching digits
string winMessage; //OUTPUT - Message proclaiming a grand prize winner if all digits match
//Seed the random number generator
srand(static_cast<unsigned int>(time(0)));
//Generate Random Lottery Numbers
for (int i = 0; i < NUM_DIGITS; i++) {
lotteryNumbers[i] = rand() % 10; // Random number 0 through 9
}
//Prompt for Input
for (int i = 0; i < NUM_DIGITS; i++) {
cout << "Enter digit " << (i + 1) << " (0-9): ";
cin >> userNumbers[i];
while (userNumbers[i] < 0 || userNumbers[i] > 9) {
cout << "\nError: Please enter a number between 0 and 9: ";
cin >> userNumbers[i];
}
cout << userNumbers[i] << endl;
}
//Compare Arrays for Matches
for (int i = 0; i < NUM_DIGITS; i++) {
if (userNumbers[i] == lotteryNumbers[i]) {
matchCount++;
}
}
//Determine Win Status
winMessage = (matchCount == NUM_DIGITS) ? "Congratulations! You are a grand prize winner!" : "";
//Separator and Output Section
cout << "-------------------------------------------------------" << endl;
cout << "OUTPUT:" << endl;
//Output Result
cout << left << setw(25) << "Lottery Numbers:" << right;
for (int i = 0; i < NUM_DIGITS; i++) {
cout << lotteryNumbers[i];
if (i < NUM_DIGITS - 1) cout << ", ";
}
cout << endl;
cout << left << setw(25) << "Matching Digits:" << right << setw(15) << matchCount << endl;
if (!winMessage.empty()) {
cout << left << setw(25) << "Message:" << right << setw(15) << winMessage << endl;
}
} //end of main()