#include <stdio.h>
#include <ctype.h>
/************************************************************
* Question 1 – C Macros (Perimeter Calculations)
************************************************************/
#define TRIANGLE_PERIMETER(a, b, c) ((a) + (b) + (c))
#define SQUARE_PERIMETER(side) (4 * (side))
#define RECTANGLE_PERIMETER(length, width) (2 * ((length) + (width)))
#define QUADRILATERAL_PERIMETER(a, b, c, d)((a) + (b) + (c) + (d))
#define CIRCLE_PERIMETER(radius) (2 * 3.141592653589793 * (radius))
#define SECTOR_PERIMETER(radius, angle) ((2 * (radius)) + ((angle) / 360.0 * (2 * 3.141592653589793 * (radius))))
/************************************************************
* Question 2 – Euro Coin Calculator
************************************************************/
float euroJarTotal(int twoEuro, int oneEuro, int fiftyCent,
int twentyCent, int tenCent,
int fiveCent, int oneCent)
{
float total = 0.0;
total += twoEuro * 2.00;
total += oneEuro * 1.00;
total += fiftyCent * 0.50;
total += twentyCent * 0.20;
total += tenCent * 0.10;
total += fiveCent * 0.05;
total += oneCent * 0.01;
return total;
}
/************************************************************
* Question 3 – Blackjack Hand Value
************************************************************/
static int cardValue(char card)
{
if (card >= '2' && card <= '9')
return card - '0';
if (card == 'T' || card == 'J' || card == 'Q' || card == 'K')
return 10;
if (card == 'A')
return 11;
return -1; /* invalid card */
}
int blackJackValue(char card1, char card2)
{
int value1 = cardValue(card1);
int value2 = cardValue(card2);
if (value1 == -1 || value2 == -1)
return -1;
/* special case: two aces */
if (card1 == 'A' && card2 == 'A')
return 12;
return value1 + value2;
}
/************************************************************
* Question 4 – Legal Word Checker
************************************************************/
int isLegal(char theString[])
{
int i = 0;
while (theString[i] != '\0')
{
if (c == 'a' || c == 'e' || c == 'i' ||
c == 'o' || c == 'u' || c == 'y')
return 1;
i++;
}
return 0;
}
/************************************************************
* Question 5 – String Statistics
************************************************************/
struct stringStats
{
int stringLength;
int upperCaseCount;
int lowerCaseCount;
int digitCount;
int spaceCount;
int nonAlphaNumericCount;
int vowelCount;
int nonVowelCount;
int hexDigitCount;
int octalDigitCount;
int binaryDigitCount;
int punctuatorCount;
int controlCharCount;
int printableCount;
};
struct stringStats getStringStats(char theString[])
{
struct stringStats stats = {0};
int i = 0;
while (theString[i] != '\0')
{
char c = theString[i];
stats.stringLength++;
if (isupper(c
)) stats.
upperCaseCount++; if (islower(c
)) stats.
lowerCaseCount++; if (isdigit(c
)) stats.
digitCount++; if (c == ' ') stats.spaceCount++;
if (!isalnum(c
) && c
!= ' ') stats.
nonAlphaNumericCount++; if (isprint(c
)) stats.
printableCount++; if (iscntrl(c
)) stats.
controlCharCount++; if (ispunct(c
)) stats.
punctuatorCount++;
if (lower == 'a' || lower == 'e' || lower == 'i' ||
lower == 'o' || lower == 'u')
stats.vowelCount++;
stats.nonVowelCount++;
{
if (c == '0' || c == '1') stats.binaryDigitCount++;
if (c >= '0' && c <= '7') stats.octalDigitCount++;
}
if ((c >= '0' && c <= '9') ||
(c >= 'A' && c <= 'F') ||
(c >= 'a' && c <= 'f'))
stats.hexDigitCount++;
i++;
}
return stats;
}
/************************************************************
* Question 6 – Horse Race Betting
************************************************************/
#define RACES 10
struct raceResult
{
int raceNumber;
int winningHorseNumber;
int placeHorseNumber;
int showHorseNumber;
};
struct raceWager
{
int raceNumber;
int myHorseNumber;
float myBetAmount;
char betType;
};
float myHorseBet(struct raceWager myBet, struct raceResult theDailyResults[])
{
struct raceResult result;
if (myBet.raceNumber < 1 || myBet.raceNumber > RACES)
return 0;
if (myBet.myBetAmount < 5 || myBet.myBetAmount > 1000)
return 0;
result = theDailyResults[myBet.raceNumber - 1];
if (myBet.betType == 'W' &&
myBet.myHorseNumber == result.winningHorseNumber)
return myBet.myBetAmount * 10;
if (myBet.betType == 'P' &&
(myBet.myHorseNumber == result.winningHorseNumber ||
myBet.myHorseNumber == result.placeHorseNumber))
return myBet.myBetAmount * 5;
if (myBet.betType == 'S' &&
(myBet.myHorseNumber == result.winningHorseNumber ||
myBet.myHorseNumber == result.placeHorseNumber ||
myBet.myHorseNumber == result.showHorseNumber))
return myBet.myBetAmount * 3;
return 0;
}
int main(void)
{
return 0;
}