fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #define RACES 10
  5.  
  6. // race results
  7. struct raceResult
  8. {
  9. int raceNumber; // The unique Race Number
  10. int winningHorseNumber; // 1st place horse number for the race
  11. int placeHorseNumber; // 2nd place horse number for the race
  12. int showHorseNumber; // 3rd place horse number for the race
  13. };
  14.  
  15.  
  16. // assume you can access this array that contains the results of horse races for a given day
  17. struct raceResult theDailyResults[RACES];
  18.  
  19. // your specific race wager
  20. struct raceWager
  21. {
  22. int raceNumber; // the race number where you bet your horse
  23. int myHorseNumber; // the horse you bet on
  24. float myBetAmount; // how much money you are betting
  25. char betType; // W for "Win", P for "Place", or S for "Show"
  26. };
  27.  
  28. // call this function and pass in your bet to see how much you won ... if you lost or there
  29. // is an error  in your wager info, it just returns zero
  30. float myHorseBet (struct raceWager myBet, struct raceResult theDailyResults[]){
  31. if (myBet.raceNumber < 1 || myBet.raceNumber > 10)
  32. return 0; // invalid if not between 0 - 10 races daily
  33. if (myBet.myHorseNumber < 1 || myBet.myHorseNumber > 20)
  34. return 0; // invalid if horse number is not 1 - 20
  35. if (myBet.myBetAmount < 5 || myBet.myBetAmount > 1000)
  36. return 0; // bet amount must be min of $5, max of $1000
  37. if (myBet.betType != 'W' && myBet.betType != 'P' && myBet.betType != 'S')
  38. return 0; // reject if not W, P, or S
  39.  
  40. // race specific results of the day
  41. struct raceResult result = theDailyResults[myBet.raceNumber - 1];
  42. if ((myBet.betType == 'W') && (myBet.myHorseNumber == result.winningHorseNumber))
  43. return myBet.myBetAmount * 10;
  44. else if (myBet.betType == 'P'){
  45. if ((myBet.myHorseNumber == result.winningHorseNumber) || (myBet.myHorseNumber == result.placeHorseNumber))
  46. return myBet.myBetAmount * 5;
  47. }
  48. else if (myBet.betType == 'S') {
  49. if ((myBet.myHorseNumber == result.winningHorseNumber) || (myBet.myHorseNumber == result.placeHorseNumber) || (myBet.myHorseNumber == result.showHorseNumber))
  50. return myBet.myBetAmount * 3;
  51. }
  52.  
  53. return 0;
  54. }
  55.  
  56. int main() {
  57. // Sample race results
  58. struct raceResult theDailyResults[RACES] = {
  59. {1, 5, 12, 9},
  60. {2, 3, 7, 14},
  61. {3, 10, 4, 2},
  62. {4, 1, 6, 13},
  63. {5, 17, 2, 8},
  64. {6, 9, 11, 20},
  65. {7, 16, 5, 3},
  66. {8, 8, 10, 4},
  67. {9, 13, 15, 7},
  68. {10, 6, 18, 19}
  69. };
  70.  
  71. // Sample bets
  72. struct raceWager bet1 = {1, 5, 10.0, 'W'}; // should win: 10 x $10 = $100
  73. struct raceWager bet2 = {2, 7, 20.0, 'P'}; // should win: 5 x $20 = $100
  74. struct raceWager bet3 = {3, 2, 5.0, 'S'}; // should win: 3 x $5 = $15
  75. struct raceWager bet4 = {4, 20, 50.0, 'P'}; // should lose
  76. struct raceWager bet5 = {11, 5, 10.0, 'W'}; // invalid race number
  77.  
  78. // Print results
  79. printf("Bet 1 Winnings: $%.2f\n", myHorseBet(bet1, theDailyResults));
  80. printf("Bet 2 Winnings: $%.2f\n", myHorseBet(bet2, theDailyResults));
  81. printf("Bet 3 Winnings: $%.2f\n", myHorseBet(bet3, theDailyResults));
  82. printf("Bet 4 Winnings: $%.2f\n", myHorseBet(bet4, theDailyResults));
  83. printf("Bet 5 Winnings: $%.2f\n", myHorseBet(bet5, theDailyResults));
  84.  
  85. return 0;
  86. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Bet 1 Winnings: $100.00
Bet 2 Winnings: $100.00
Bet 3 Winnings: $15.00
Bet 4 Winnings: $0.00
Bet 5 Winnings: $0.00