fork download
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. #define RACES 10
  5.  
  6. struct raceResult {
  7. int raceNumber;
  8. int winningHorseNumber;
  9. int placeHorseNumber;
  10. int showHorseNumber;
  11. };
  12.  
  13. struct raceWager {
  14. int raceNumber;
  15. int myHorseNumber;
  16. float myBetAmount;
  17. char betType; // 'W', 'P', 'S'
  18. };
  19.  
  20. float myHorseBet(struct raceWager myBet, struct raceResult theDailyResults[]);
  21.  
  22. int main(void) {
  23. struct raceResult theDailyResults[RACES] = {
  24. {1, 5, 3, 8},
  25. {2, 4, 6, 7},
  26. {3, 2, 9, 1},
  27. // ... other races
  28. };
  29.  
  30. struct raceWager myBet = {1, 5, 10.0f, 'W'}; // bet $10 on horse 5 to win race 1
  31.  
  32. float payout = myHorseBet(myBet, theDailyResults);
  33. if (payout > 0)
  34. printf("You won $%.2f!\n", payout);
  35. else
  36. printf("Sorry, you lost.\n");
  37.  
  38. return 0;
  39. }
  40.  
  41. float myHorseBet(struct raceWager myBet, struct raceResult theDailyResults[]) {
  42. float winnings = 0.0f;
  43.  
  44. // Validate bet type
  45. if (myBet.betType != 'W' && myBet.betType != 'P' && myBet.betType != 'S') {
  46. return winnings;
  47. }
  48.  
  49. // Search for the matching race
  50. for (int i = 0; i < RACES; i++) {
  51. if (theDailyResults[i].raceNumber == myBet.raceNumber) {
  52.  
  53. // Win bet: must be 1st place
  54. if (myBet.betType == 'W' &&
  55. myBet.myHorseNumber == theDailyResults[i].winningHorseNumber) {
  56. winnings = myBet.myBetAmount * 2.0f;
  57. }
  58.  
  59. // Place bet: must be 1st or 2nd place
  60. else if (myBet.betType == 'P' &&
  61. (myBet.myHorseNumber == theDailyResults[i].winningHorseNumber ||
  62. myBet.myHorseNumber == theDailyResults[i].placeHorseNumber)) {
  63. winnings = myBet.myBetAmount * 1.5f;
  64. }
  65.  
  66. // Show bet: must be 1st, 2nd, or 3rd place
  67. else if (myBet.betType == 'S' &&
  68. (myBet.myHorseNumber == theDailyResults[i].winningHorseNumber ||
  69. myBet.myHorseNumber == theDailyResults[i].placeHorseNumber ||
  70. myBet.myHorseNumber == theDailyResults[i].showHorseNumber)) {
  71. winnings = myBet.myBetAmount * 1.2f;
  72. }
  73.  
  74. break; // race found, no need to continue loop
  75. }
  76. }
  77.  
  78. return winnings;
  79. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
You won $20.00!