fork(1) download
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. /************************************************************
  5.  * Question 1 – C Macros (Perimeter Calculations)
  6.  ************************************************************/
  7.  
  8. #define TRIANGLE_PERIMETER(a, b, c) ((a) + (b) + (c))
  9. #define SQUARE_PERIMETER(side) (4 * (side))
  10. #define RECTANGLE_PERIMETER(length, width) (2 * ((length) + (width)))
  11. #define QUADRILATERAL_PERIMETER(a, b, c, d)((a) + (b) + (c) + (d))
  12. #define CIRCLE_PERIMETER(radius) (2 * 3.141592653589793 * (radius))
  13. #define SECTOR_PERIMETER(radius, angle) ((2 * (radius)) + ((angle) / 360.0 * (2 * 3.141592653589793 * (radius))))
  14.  
  15. /************************************************************
  16.  * Question 2 – Euro Coin Calculator
  17.  ************************************************************/
  18.  
  19. float euroJarTotal(int twoEuro, int oneEuro, int fiftyCent,
  20. int twentyCent, int tenCent,
  21. int fiveCent, int oneCent)
  22. {
  23. float total = 0.0;
  24.  
  25. total += twoEuro * 2.00;
  26. total += oneEuro * 1.00;
  27. total += fiftyCent * 0.50;
  28. total += twentyCent * 0.20;
  29. total += tenCent * 0.10;
  30. total += fiveCent * 0.05;
  31. total += oneCent * 0.01;
  32.  
  33. return total;
  34. }
  35.  
  36. /************************************************************
  37.  * Question 3 – Blackjack Hand Value
  38.  ************************************************************/
  39.  
  40. static int cardValue(char card)
  41. {
  42. if (card >= '2' && card <= '9')
  43. return card - '0';
  44.  
  45. if (card == 'T' || card == 'J' || card == 'Q' || card == 'K')
  46. return 10;
  47.  
  48. if (card == 'A')
  49. return 11;
  50.  
  51. return -1; /* invalid card */
  52. }
  53.  
  54. int blackJackValue(char card1, char card2)
  55. {
  56. int value1 = cardValue(card1);
  57. int value2 = cardValue(card2);
  58.  
  59. if (value1 == -1 || value2 == -1)
  60. return -1;
  61.  
  62. /* special case: two aces */
  63. if (card1 == 'A' && card2 == 'A')
  64. return 12;
  65.  
  66. return value1 + value2;
  67. }
  68.  
  69. /************************************************************
  70.  * Question 4 – Legal Word Checker
  71.  ************************************************************/
  72.  
  73. int isLegal(char theString[])
  74. {
  75. int i = 0;
  76.  
  77. while (theString[i] != '\0')
  78. {
  79. char c = tolower(theString[i]);
  80.  
  81. if (c == 'a' || c == 'e' || c == 'i' ||
  82. c == 'o' || c == 'u' || c == 'y')
  83. return 1;
  84.  
  85. i++;
  86. }
  87. return 0;
  88. }
  89.  
  90. /************************************************************
  91.  * Question 5 – String Statistics
  92.  ************************************************************/
  93.  
  94. struct stringStats
  95. {
  96. int stringLength;
  97. int upperCaseCount;
  98. int lowerCaseCount;
  99. int digitCount;
  100. int spaceCount;
  101. int nonAlphaNumericCount;
  102. int vowelCount;
  103. int nonVowelCount;
  104. int hexDigitCount;
  105. int octalDigitCount;
  106. int binaryDigitCount;
  107. int punctuatorCount;
  108. int controlCharCount;
  109. int printableCount;
  110. };
  111.  
  112. struct stringStats getStringStats(char theString[])
  113. {
  114. struct stringStats stats = {0};
  115. int i = 0;
  116.  
  117. while (theString[i] != '\0')
  118. {
  119. char c = theString[i];
  120. char lower = tolower(c);
  121.  
  122. stats.stringLength++;
  123.  
  124. if (isupper(c)) stats.upperCaseCount++;
  125. if (islower(c)) stats.lowerCaseCount++;
  126. if (isdigit(c)) stats.digitCount++;
  127. if (c == ' ') stats.spaceCount++;
  128. if (!isalnum(c) && c != ' ') stats.nonAlphaNumericCount++;
  129. if (isprint(c)) stats.printableCount++;
  130. if (iscntrl(c)) stats.controlCharCount++;
  131. if (ispunct(c)) stats.punctuatorCount++;
  132.  
  133. if (lower == 'a' || lower == 'e' || lower == 'i' ||
  134. lower == 'o' || lower == 'u')
  135. stats.vowelCount++;
  136. else if (isalpha(c))
  137. stats.nonVowelCount++;
  138.  
  139. if (isdigit(c))
  140. {
  141. if (c == '0' || c == '1') stats.binaryDigitCount++;
  142. if (c >= '0' && c <= '7') stats.octalDigitCount++;
  143. }
  144.  
  145. if ((c >= '0' && c <= '9') ||
  146. (c >= 'A' && c <= 'F') ||
  147. (c >= 'a' && c <= 'f'))
  148. stats.hexDigitCount++;
  149.  
  150. i++;
  151. }
  152. return stats;
  153. }
  154.  
  155. /************************************************************
  156.  * Question 6 – Horse Race Betting
  157.  ************************************************************/
  158.  
  159. #define RACES 10
  160.  
  161. struct raceResult
  162. {
  163. int raceNumber;
  164. int winningHorseNumber;
  165. int placeHorseNumber;
  166. int showHorseNumber;
  167. };
  168.  
  169. struct raceWager
  170. {
  171. int raceNumber;
  172. int myHorseNumber;
  173. float myBetAmount;
  174. char betType;
  175. };
  176.  
  177. float myHorseBet(struct raceWager myBet, struct raceResult theDailyResults[])
  178. {
  179. struct raceResult result;
  180.  
  181. if (myBet.raceNumber < 1 || myBet.raceNumber > RACES)
  182. return 0;
  183.  
  184. if (myBet.myBetAmount < 5 || myBet.myBetAmount > 1000)
  185. return 0;
  186.  
  187. result = theDailyResults[myBet.raceNumber - 1];
  188.  
  189. if (myBet.betType == 'W' &&
  190. myBet.myHorseNumber == result.winningHorseNumber)
  191. return myBet.myBetAmount * 10;
  192.  
  193. if (myBet.betType == 'P' &&
  194. (myBet.myHorseNumber == result.winningHorseNumber ||
  195. myBet.myHorseNumber == result.placeHorseNumber))
  196. return myBet.myBetAmount * 5;
  197.  
  198. if (myBet.betType == 'S' &&
  199. (myBet.myHorseNumber == result.winningHorseNumber ||
  200. myBet.myHorseNumber == result.placeHorseNumber ||
  201. myBet.myHorseNumber == result.showHorseNumber))
  202. return myBet.myBetAmount * 3;
  203.  
  204. return 0;
  205. }
  206.  
  207.  
  208. int main(void)
  209. {
  210. return 0;
  211. }
Success #stdin #stdout 0.01s 5272KB
stdin
Standard input is empty
stdout
Standard output is empty