#include <stdio.h>
#include <ctype.h>
#define RACES 10
struct raceResult {
int raceNumber;
int winningHorseNumber;
int placeHorseNumber;
int showHorseNumber;
};
struct raceWager {
int raceNumber;
int myHorseNumber;
float myBetAmount;
char betType; // 'W', 'P', 'S'
};
float myHorseBet(struct raceWager myBet, struct raceResult theDailyResults[]);
int main(void) {
struct raceResult theDailyResults[RACES] = {
{1, 5, 3, 8},
{2, 4, 6, 7},
{3, 2, 9, 1},
// ... other races
};
struct raceWager myBet = {1, 5, 10.0f, 'W'}; // bet $10 on horse 5 to win race 1
float payout = myHorseBet(myBet, theDailyResults);
if (payout > 0)
printf("You won $%.2f!\n", payout
); else
return 0;
}
float myHorseBet(struct raceWager myBet, struct raceResult theDailyResults[]) {
float winnings = 0.0f;
// Validate bet type
if (myBet.betType != 'W' && myBet.betType != 'P' && myBet.betType != 'S') {
return winnings;
}
// Search for the matching race
for (int i = 0; i < RACES; i++) {
if (theDailyResults[i].raceNumber == myBet.raceNumber) {
// Win bet: must be 1st place
if (myBet.betType == 'W' &&
myBet.myHorseNumber == theDailyResults[i].winningHorseNumber) {
winnings = myBet.myBetAmount * 2.0f;
}
// Place bet: must be 1st or 2nd place
else if (myBet.betType == 'P' &&
(myBet.myHorseNumber == theDailyResults[i].winningHorseNumber ||
myBet.myHorseNumber == theDailyResults[i].placeHorseNumber)) {
winnings = myBet.myBetAmount * 1.5f;
}
// Show bet: must be 1st, 2nd, or 3rd place
else if (myBet.betType == 'S' &&
(myBet.myHorseNumber == theDailyResults[i].winningHorseNumber ||
myBet.myHorseNumber == theDailyResults[i].placeHorseNumber ||
myBet.myHorseNumber == theDailyResults[i].showHorseNumber)) {
winnings = myBet.myBetAmount * 1.2f;
}
break; // race found, no need to continue loop
}
}
return winnings;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgoKI2RlZmluZSBSQUNFUyAxMAoKc3RydWN0IHJhY2VSZXN1bHQgewogICAgaW50IHJhY2VOdW1iZXI7CiAgICBpbnQgd2lubmluZ0hvcnNlTnVtYmVyOwogICAgaW50IHBsYWNlSG9yc2VOdW1iZXI7CiAgICBpbnQgc2hvd0hvcnNlTnVtYmVyOwp9OwoKc3RydWN0IHJhY2VXYWdlciB7CiAgICBpbnQgcmFjZU51bWJlcjsKICAgIGludCBteUhvcnNlTnVtYmVyOwogICAgZmxvYXQgbXlCZXRBbW91bnQ7CiAgICBjaGFyIGJldFR5cGU7IC8vICdXJywgJ1AnLCAnUycKfTsKCmZsb2F0IG15SG9yc2VCZXQoc3RydWN0IHJhY2VXYWdlciBteUJldCwgc3RydWN0IHJhY2VSZXN1bHQgdGhlRGFpbHlSZXN1bHRzW10pOwoKaW50IG1haW4odm9pZCkgewoJc3RydWN0IHJhY2VSZXN1bHQgdGhlRGFpbHlSZXN1bHRzW1JBQ0VTXSA9IHsKICAgICAgICB7MSwgNSwgMywgOH0sCiAgICAgICAgezIsIDQsIDYsIDd9LAogICAgICAgIHszLCAyLCA5LCAxfSwKICAgICAgICAvLyAuLi4gb3RoZXIgcmFjZXMKICAgIH07CgogICAgc3RydWN0IHJhY2VXYWdlciBteUJldCA9IHsxLCA1LCAxMC4wZiwgJ1cnfTsgLy8gYmV0ICQxMCBvbiBob3JzZSA1IHRvIHdpbiByYWNlIDEKCiAgICBmbG9hdCBwYXlvdXQgPSBteUhvcnNlQmV0KG15QmV0LCB0aGVEYWlseVJlc3VsdHMpOwogICAgaWYgKHBheW91dCA+IDApCiAgICAgICAgcHJpbnRmKCJZb3Ugd29uICQlLjJmIVxuIiwgcGF5b3V0KTsKICAgIGVsc2UKICAgICAgICBwcmludGYoIlNvcnJ5LCB5b3UgbG9zdC5cbiIpOwoKICAgIHJldHVybiAwOwp9CgpmbG9hdCBteUhvcnNlQmV0KHN0cnVjdCByYWNlV2FnZXIgbXlCZXQsIHN0cnVjdCByYWNlUmVzdWx0IHRoZURhaWx5UmVzdWx0c1tdKSB7CiAgICBmbG9hdCB3aW5uaW5ncyA9IDAuMGY7CgogICAgLy8gVmFsaWRhdGUgYmV0IHR5cGUKICAgIGlmIChteUJldC5iZXRUeXBlICE9ICdXJyAmJiBteUJldC5iZXRUeXBlICE9ICdQJyAmJiBteUJldC5iZXRUeXBlICE9ICdTJykgewogICAgICAgIHJldHVybiB3aW5uaW5nczsKICAgIH0KCiAgICAvLyBTZWFyY2ggZm9yIHRoZSBtYXRjaGluZyByYWNlCiAgICBmb3IgKGludCBpID0gMDsgaSA8IFJBQ0VTOyBpKyspIHsKICAgICAgICBpZiAodGhlRGFpbHlSZXN1bHRzW2ldLnJhY2VOdW1iZXIgPT0gbXlCZXQucmFjZU51bWJlcikgewoKICAgICAgICAgICAgLy8gV2luIGJldDogbXVzdCBiZSAxc3QgcGxhY2UKICAgICAgICAgICAgaWYgKG15QmV0LmJldFR5cGUgPT0gJ1cnICYmCiAgICAgICAgICAgICAgICBteUJldC5teUhvcnNlTnVtYmVyID09IHRoZURhaWx5UmVzdWx0c1tpXS53aW5uaW5nSG9yc2VOdW1iZXIpIHsKICAgICAgICAgICAgICAgIHdpbm5pbmdzID0gbXlCZXQubXlCZXRBbW91bnQgKiAyLjBmOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBQbGFjZSBiZXQ6IG11c3QgYmUgMXN0IG9yIDJuZCBwbGFjZQogICAgICAgICAgICBlbHNlIGlmIChteUJldC5iZXRUeXBlID09ICdQJyAmJgogICAgICAgICAgICAgICAgICAgIChteUJldC5teUhvcnNlTnVtYmVyID09IHRoZURhaWx5UmVzdWx0c1tpXS53aW5uaW5nSG9yc2VOdW1iZXIgfHwKICAgICAgICAgICAgICAgICAgICAgbXlCZXQubXlIb3JzZU51bWJlciA9PSB0aGVEYWlseVJlc3VsdHNbaV0ucGxhY2VIb3JzZU51bWJlcikpIHsKICAgICAgICAgICAgICAgIHdpbm5pbmdzID0gbXlCZXQubXlCZXRBbW91bnQgKiAxLjVmOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTaG93IGJldDogbXVzdCBiZSAxc3QsIDJuZCwgb3IgM3JkIHBsYWNlCiAgICAgICAgICAgIGVsc2UgaWYgKG15QmV0LmJldFR5cGUgPT0gJ1MnICYmCiAgICAgICAgICAgICAgICAgICAgKG15QmV0Lm15SG9yc2VOdW1iZXIgPT0gdGhlRGFpbHlSZXN1bHRzW2ldLndpbm5pbmdIb3JzZU51bWJlciB8fAogICAgICAgICAgICAgICAgICAgICBteUJldC5teUhvcnNlTnVtYmVyID09IHRoZURhaWx5UmVzdWx0c1tpXS5wbGFjZUhvcnNlTnVtYmVyIHx8CiAgICAgICAgICAgICAgICAgICAgIG15QmV0Lm15SG9yc2VOdW1iZXIgPT0gdGhlRGFpbHlSZXN1bHRzW2ldLnNob3dIb3JzZU51bWJlcikpIHsKICAgICAgICAgICAgICAgIHdpbm5pbmdzID0gbXlCZXQubXlCZXRBbW91bnQgKiAxLjJmOwogICAgICAgICAgICB9CgogICAgICAgICAgICBicmVhazsgLy8gcmFjZSBmb3VuZCwgbm8gbmVlZCB0byBjb250aW51ZSBsb29wCiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB3aW5uaW5nczsKfQ==