fork download
  1. #include <stdio.h>
  2. #include <string.h>
  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. // assume you can access this array that contains the results
  16. struct raceResult theDailyResults[RACES] =
  17. {
  18. {1, 5, 3, 7},
  19. {2, 2, 8, 1},
  20. {3, 4, 6, 9},
  21. {4, 10, 2, 3},
  22. {5, 7, 5, 4},
  23. {6, 1, 3, 2},
  24. {7, 6, 9, 8},
  25. {8, 8, 7, 5},
  26. {9, 3, 4, 6},
  27. {10, 2, 1, 9}
  28. };
  29.  
  30. // your specific race wager
  31. struct raceWager
  32. {
  33. int raceNumber; // the race number where you bet your horse
  34. int myHorseNumber; // the horse you bet on
  35. float myBetAmount; // how much money you are betting
  36. char betType; // W for "Win", P for "Place", or S for "Show"
  37. };
  38.  
  39. // function prototype
  40. float myHorseBet (struct raceWager myBet, struct raceResult theDailyResults[]);
  41.  
  42. // **************************************************
  43. // Function: myHorseBet
  44. //
  45. // Description: calculates winnings for a horse race bet
  46. //
  47. // Parameters: myBet - structure containing wager info
  48. // theDailyResults[] - array of race results
  49. //
  50. // Returns: winnings in dollars
  51. // returns 0 if bet is invalid or lost
  52. //
  53. // **************************************************
  54.  
  55. float myHorseBet (struct raceWager myBet, struct raceResult theDailyResults[])
  56. {
  57. int raceIndex;
  58. float winnings = 0;
  59.  
  60. // validate race number
  61. if(myBet.raceNumber < 1 || myBet.raceNumber > RACES)
  62. {
  63. return 0;
  64. }//if
  65.  
  66. // validate horse number
  67. if(myBet.myHorseNumber < 1 || myBet.myHorseNumber > 20)
  68. {
  69. return 0;
  70. }//if
  71.  
  72. // validate bet amount
  73. if(myBet.myBetAmount < 5 || myBet.myBetAmount > 1000)
  74. {
  75. return 0;
  76. }//if
  77.  
  78. raceIndex = myBet.raceNumber - 1;
  79.  
  80. // Calculate winnings if bet type is Win
  81. if(tolower(myBet.betType) == 'w')
  82. {
  83. if(myBet.myHorseNumber == theDailyResults[raceIndex].winningHorseNumber)
  84. {
  85. winnings = myBet.myBetAmount * 10;
  86. }//if
  87. }//if
  88.  
  89. // Calculate winnings if bet type is Place
  90. else if(tolower(myBet.betType) == 'p')
  91. {
  92. if(myBet.myHorseNumber == theDailyResults[raceIndex].winningHorseNumber ||
  93. myBet.myHorseNumber == theDailyResults[raceIndex].placeHorseNumber)
  94. {
  95. winnings = myBet.myBetAmount * 5;
  96. }//if
  97. }//else if
  98.  
  99. // Calculate winnings if bet type is Show
  100. else if(tolower(myBet.betType) == 's')
  101. {
  102. if(myBet.myHorseNumber == theDailyResults[raceIndex].winningHorseNumber ||
  103. myBet.myHorseNumber == theDailyResults[raceIndex].placeHorseNumber ||
  104. myBet.myHorseNumber == theDailyResults[raceIndex].showHorseNumber)
  105. {
  106. winnings = myBet.myBetAmount * 3;
  107. }//if
  108. }//else if
  109.  
  110. else
  111. {
  112. return 0;
  113. }//else
  114.  
  115. return winnings;
  116. }//myHorseBet
  117.  
  118. // **************************************************
  119. // Function: main
  120. //
  121. // Description: collects user input and displays winnings
  122. //
  123. // **************************************************
  124.  
  125. int main()
  126. {
  127. struct raceWager myBet;
  128. float winnings;
  129.  
  130. // input
  131. printf("Enter race number (1-10): ");
  132. scanf("%d", &myBet.raceNumber);
  133.  
  134. printf("Enter horse number (1-20): ");
  135. scanf("%d", &myBet.myHorseNumber);
  136.  
  137. printf("Enter bet amount ($5 - $1000): ");
  138. scanf("%f", &myBet.myBetAmount);
  139.  
  140. printf("Enter bet type (W/P/S): ");
  141. scanf(" %c", &myBet.betType);
  142.  
  143. // call function
  144. winnings = myHorseBet(myBet, theDailyResults);
  145.  
  146. // output
  147. if(winnings > 0)
  148. printf("\nYou won $%.2f!\n", winnings);
  149. else
  150. printf("\nYou lost or entered invalid bet.\n");
  151.  
  152. return 0;
  153. }
  154.  
Success #stdin #stdout 0s 5320KB
stdin
3 4 25 W
stdout
Enter race number (1-10): Enter horse number (1-20): Enter bet amount ($5 - $1000): Enter bet type (W/P/S): 
You won $250.00!