//Andrew Alspaugh CS1A Chapter 8. P. 487. # 4
//Check For Lottery Winner
/****************************************************************************
This program accepts a user input as the winning lottery number. Then the
program checks the array of ticket numbers to check for the winner.
(UPDATED FROM CHALLENGE 2)
____________________________________________________________________________
//DATA DICTIONARY
//Inputs
const int SIZE = 10;
int luckyWinners[SIZE] = {13579, 26791, 26792, 33445, 55555, 62483, 77777, 79422, 85647, 93121};
//User Input
int Winner;
//Bubble Sort
int temp;
bool swap;
//Binary Search
int first = 0;
int last = SIZE - 1;
int middle;
int position = -1;
bool found = false;
//Outputs
bool valid = true;
*****************************************************************************/
#include <iostream>
using namespace std;
int main()
{
//DATA DICTIONARY
//Inputs
const int SIZE = 10;
int luckyWinners[SIZE] = {13579, 26791, 26792, 33445, 55555, 62483, 77777, 79422, 85647, 93121};
//User Input
int Winner;
//Bubble Sort
int temp;
bool swap;
//Binary Search
int first = 0;
int last = SIZE - 1;
int middle;
int position = -1;
bool found = false;
//Outputs
bool valid = true;
//INPUT
cout << "Enter This Weeks Winning 5-Digit Number: " << endl;
cin >> Winner;
//PROCESS
//bubble sort
do
{
swap = false;
for (int count = 0; count < (SIZE - 1); count++)
{
if (luckyWinners[count] > luckyWinners[count + 1])
{
temp = luckyWinners[count];
luckyWinners[count] = luckyWinners[count + 1];
luckyWinners[count + 1] = temp;
swap = true;
}
}
} while (swap);
//binary search
while(!found && first <= last)
{
middle = (first + last / 2);
if (luckyWinners[middle] == Winner)
{
found = true;
position = middle;
}
else if (luckyWinners[middle] > Winner)
last = middle - 1;
else
first = middle + 1;
}
//OUTPUT
if (found)
cout << "Congrats you've won" << endl;
else
cout << "Better luck next time" << endl;
return 0;
}
Ly9BbmRyZXcgQWxzcGF1Z2ggICAgICAgICAgICAgQ1MxQSAgICAgICAgICAgICAgICAgICAgQ2hhcHRlciA4LiBQLiA0ODcuICMgNAoKLy9DaGVjayBGb3IgTG90dGVyeSBXaW5uZXIKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKVGhpcyBwcm9ncmFtIGFjY2VwdHMgYSB1c2VyIGlucHV0IGFzIHRoZSB3aW5uaW5nIGxvdHRlcnkgbnVtYmVyLiBUaGVuIHRoZSAKcHJvZ3JhbSBjaGVja3MgdGhlIGFycmF5IG9mIHRpY2tldCBudW1iZXJzIHRvIGNoZWNrIGZvciB0aGUgd2lubmVyLgooVVBEQVRFRCBGUk9NIENIQUxMRU5HRSAyKQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCi8vREFUQSBESUNUSU9OQVJZCgkvL0lucHV0cwoJY29uc3QgaW50IFNJWkUgPSAxMDsKCWludCBsdWNreVdpbm5lcnNbU0laRV0gPSB7MTM1NzksIDI2NzkxLCAyNjc5MiwgMzM0NDUsIDU1NTU1LCA2MjQ4MywgNzc3NzcsIDc5NDIyLCA4NTY0NywgOTMxMjF9OwoJCgkvL1VzZXIgSW5wdXQKCWludCBXaW5uZXI7CgkKCS8vQnViYmxlIFNvcnQKCWludCB0ZW1wOwoJYm9vbCBzd2FwOwoJCgkvL0JpbmFyeSBTZWFyY2gKCWludCBmaXJzdCA9IDA7CglpbnQgbGFzdCA9IFNJWkUgLSAxOwoJaW50IG1pZGRsZTsKCWludCBwb3NpdGlvbiA9IC0xOwoJYm9vbCBmb3VuZCA9IGZhbHNlOwoJCgkvL091dHB1dHMKCWJvb2wgdmFsaWQgPSB0cnVlOwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSAKewovL0RBVEEgRElDVElPTkFSWQoJLy9JbnB1dHMKCWNvbnN0IGludCBTSVpFID0gMTA7CglpbnQgbHVja3lXaW5uZXJzW1NJWkVdID0gezEzNTc5LCAyNjc5MSwgMjY3OTIsIDMzNDQ1LCA1NTU1NSwgNjI0ODMsIDc3Nzc3LCA3OTQyMiwgODU2NDcsIDkzMTIxfTsKCQoJLy9Vc2VyIElucHV0CglpbnQgV2lubmVyOwoJCgkvL0J1YmJsZSBTb3J0CglpbnQgdGVtcDsKCWJvb2wgc3dhcDsKCQoJLy9CaW5hcnkgU2VhcmNoCglpbnQgZmlyc3QgPSAwOwoJaW50IGxhc3QgPSBTSVpFIC0gMTsKCWludCBtaWRkbGU7CglpbnQgcG9zaXRpb24gPSAtMTsKCWJvb2wgZm91bmQgPSBmYWxzZTsKCQoJLy9PdXRwdXRzCglib29sIHZhbGlkID0gdHJ1ZTsKCQovL0lOUFVUCgljb3V0IDw8ICJFbnRlciBUaGlzIFdlZWtzIFdpbm5pbmcgNS1EaWdpdCBOdW1iZXI6ICIgPDwgZW5kbDsKCWNpbiA+PiBXaW5uZXI7CiAKLy9QUk9DRVNTCgkvL2J1YmJsZSBzb3J0CglkbwoJewoJCXN3YXAgPSBmYWxzZTsKCQlmb3IgKGludCBjb3VudCA9IDA7IGNvdW50IDwgKFNJWkUgLSAxKTsgY291bnQrKykKCQl7CgkJCWlmIChsdWNreVdpbm5lcnNbY291bnRdID4gbHVja3lXaW5uZXJzW2NvdW50ICsgMV0pCgkJCXsKCQkJCXRlbXAgPSBsdWNreVdpbm5lcnNbY291bnRdOwoJCQkJbHVja3lXaW5uZXJzW2NvdW50XSA9IGx1Y2t5V2lubmVyc1tjb3VudCArIDFdOwoJCQkJbHVja3lXaW5uZXJzW2NvdW50ICsgMV0gPSB0ZW1wOwoJCQkJc3dhcCA9IHRydWU7CgkJCX0KCQl9Cgl9IHdoaWxlIChzd2FwKTsKCQoJLy9iaW5hcnkgc2VhcmNoCgl3aGlsZSghZm91bmQgJiYgZmlyc3QgPD0gbGFzdCkKCXsKCQltaWRkbGUgPSAoZmlyc3QgKyBsYXN0IC8gMik7CgkJaWYgKGx1Y2t5V2lubmVyc1ttaWRkbGVdID09IFdpbm5lcikKCQl7CgkJCWZvdW5kID0gdHJ1ZTsKCQkJcG9zaXRpb24gPSBtaWRkbGU7CgkJfQoJCWVsc2UgaWYgKGx1Y2t5V2lubmVyc1ttaWRkbGVdID4gV2lubmVyKQoJCQlsYXN0ID0gbWlkZGxlIC0gMTsKCQllbHNlIAoJCQlmaXJzdCA9IG1pZGRsZSArIDE7Cgl9CgkKLy9PVVRQVVQKCWlmIChmb3VuZCkKCQljb3V0IDw8ICJDb25ncmF0cyB5b3UndmUgd29uIiA8PCBlbmRsOwoJZWxzZQoJCWNvdXQgPDwgIkJldHRlciBsdWNrIG5leHQgdGltZSIgPDwgZW5kbDsKCQkKCXJldHVybiAwOwp9