#include <stdio.h>
#define MAX_NAME_LEN 50
#define MAX_TRACK_LEN 40
#define MAX_RACES 10
#define MAX_HORSES 20
#define MAX_WORKOUTS 10
#define MAX_PAST_RACES 10
typedef struct {
int month;
int day;
int year;
} Date;
typedef enum {
SURFACE_DIRT,
SURFACE_TURF,
SURFACE_ALL_WEATHER
} SurfaceType;
typedef enum {
MARE, FILLY, COLT, BOY, GELDING, HORSE
} HorseSex;
typedef union {
float kg;
int lbs;
} HorseWeight;
typedef struct {
char name[MAX_NAME_LEN];
int wins;
int places;
int shows;
float winPercent;
} Trainer;
typedef struct {
char name[MAX_NAME_LEN];
int lifetimeStarts;
int wins;
int places;
int shows;
float winPercent;
} Jockey;
struct customer;
typedef struct {
Date workoutDate;
float timeSeconds;
char note[30];
} Workout;
typedef enum {
CLASS_MAIDEN,
CLASS_CLAIMING,
CLASS_ALLOWANCE,
CLASS_STAKES
} RaceClass;
typedef struct {
char track[MAX_TRACK_LEN];
SurfaceType surface;
RaceClass raceClass;
int positionFinish;
char comments[80];
} PastRace;
// TODO - add other supporting structures that could be used
// as types for members of the two main structures below.
// add a structure to store details on each race
struct customer {
Date raceDate;
float purse;
int raceNumber; // C - the specific race number identifier
char trackName[50]; // E - the name of the track where the race was held
char raceConditions[100];
int numberOfStarters;
SurfaceType surface;
// TODO - add other members
};
// add a structure to store details on each horse
typedef struct book{
int programNumber;
char horseName[MAX_NAME_LEN];
HorseSex sex;
char sire[MAX_NAME_LEN];
char dam[MAX_NAME_LEN];
HorseWeight weight;
Trainer trainer;
PastRace pastPerformances[MAX_PAST_RACES];
Date birthDate;
int pastRaceCount;
float morningLineOdds;
int postPosition;
Jockey jockey;
float lifetimeEarnings;
Workout workouts[MAX_WORKOUTS];
int workoutCount;
} HorseDetailsAndPastPerformance; // TODO - add other members
int main ( ){
// NOTE: You don't have to populate any of these!!!
struct customer myRaces[10]; struct book myHorses[20];
// nothing else needs to be added to main
return (0);
};
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE1BWF9OQU1FX0xFTiA1MAojZGVmaW5lIE1BWF9UUkFDS19MRU4gNDAKI2RlZmluZSBNQVhfUkFDRVMgMTAKI2RlZmluZSBNQVhfSE9SU0VTIDIwCiNkZWZpbmUgTUFYX1dPUktPVVRTIDEwCiNkZWZpbmUgTUFYX1BBU1RfUkFDRVMgMTAKCnR5cGVkZWYgc3RydWN0IHsKICAgIGludCBtb250aDsKICAgIGludCBkYXk7CiAgICBpbnQgeWVhcjsKfSBEYXRlOwoKdHlwZWRlZiBlbnVtIHsKICAgIFNVUkZBQ0VfRElSVCwKICAgIFNVUkZBQ0VfVFVSRiwKICAgIFNVUkZBQ0VfQUxMX1dFQVRIRVIKfSBTdXJmYWNlVHlwZTsKCnR5cGVkZWYgZW51bSB7CiAgICBNQVJFLCBGSUxMWSwgQ09MVCwgQk9ZLCBHRUxESU5HLCBIT1JTRQp9IEhvcnNlU2V4OwoKdHlwZWRlZiB1bmlvbiB7CiAgICBmbG9hdCBrZzsKICAgIGludCBsYnM7Cn0gSG9yc2VXZWlnaHQ7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBjaGFyIG5hbWVbTUFYX05BTUVfTEVOXTsKICAgIGludCB3aW5zOwogICAgaW50IHBsYWNlczsKICAgIGludCBzaG93czsKICAgIGZsb2F0IHdpblBlcmNlbnQ7Cn0gVHJhaW5lcjsKCnR5cGVkZWYgc3RydWN0IHsKICAgIGNoYXIgbmFtZVtNQVhfTkFNRV9MRU5dOwogICAgaW50IGxpZmV0aW1lU3RhcnRzOwogICAgaW50IHdpbnM7CiAgICBpbnQgcGxhY2VzOwogICAgaW50IHNob3dzOwogICAgZmxvYXQgd2luUGVyY2VudDsKfSBKb2NrZXk7CgpzdHJ1Y3QgY3VzdG9tZXI7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBEYXRlIHdvcmtvdXREYXRlOwogICAgZmxvYXQgdGltZVNlY29uZHM7CiAgICBjaGFyIG5vdGVbMzBdOwp9IFdvcmtvdXQ7Cgp0eXBlZGVmIGVudW0gewogICAgQ0xBU1NfTUFJREVOLAogICAgQ0xBU1NfQ0xBSU1JTkcsCiAgICBDTEFTU19BTExPV0FOQ0UsCiAgICBDTEFTU19TVEFLRVMKfSBSYWNlQ2xhc3M7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBjaGFyIHRyYWNrW01BWF9UUkFDS19MRU5dOwogICAgU3VyZmFjZVR5cGUgc3VyZmFjZTsKICAgIFJhY2VDbGFzcyByYWNlQ2xhc3M7CiAgICBpbnQgcG9zaXRpb25GaW5pc2g7CiAgICBjaGFyIGNvbW1lbnRzWzgwXTsKfSBQYXN0UmFjZTsKCgoKLy8gVE9ETyAtIGFkZCBvdGhlciBzdXBwb3J0aW5nIHN0cnVjdHVyZXMgdGhhdCBjb3VsZCBiZSB1c2VkCiAgICAgLy8gYXMgdHlwZXMgZm9yIG1lbWJlcnMgb2YgdGhlIHR3byBtYWluIHN0cnVjdHVyZXMgYmVsb3cuCiAKICAgICAvLyBhZGQgYSBzdHJ1Y3R1cmUgdG8gc3RvcmUgZGV0YWlscyBvbiBlYWNoIHJhY2UKICAgICAgc3RydWN0IGN1c3RvbWVyIHsKICAgICAgICBEYXRlIHJhY2VEYXRlOyAKICAgICAgICBmbG9hdCBwdXJzZTsKCQlpbnQgcmFjZU51bWJlcjsgICAgICAgICAgICAgICAgICAgICAvLyBDIC0gdGhlIHNwZWNpZmljIHJhY2UgbnVtYmVyIGlkZW50aWZpZXIgICAgICAgICAgICAgICAKCQljaGFyIHRyYWNrTmFtZVs1MF07ICAgICAgICAgICAgICAgIC8vIEUgLSB0aGUgbmFtZSBvZiB0aGUgdHJhY2sgd2hlcmUgdGhlIHJhY2Ugd2FzIGhlbGQKCQljaGFyIHJhY2VDb25kaXRpb25zWzEwMF07CgkJaW50IG51bWJlck9mU3RhcnRlcnM7CgkJU3VyZmFjZVR5cGUgc3VyZmFjZTsKCiAgICAgICAgICAgICAvLyBUT0RPIC0gYWRkIG90aGVyIG1lbWJlcnMKfTsKICAgICAvLyBhZGQgYSBzdHJ1Y3R1cmUgdG8gc3RvcmUgZGV0YWlscyBvbiBlYWNoIGhvcnNlCiAgICAgdHlwZWRlZiBzdHJ1Y3QgYm9va3sKICAgICAgICAgaW50IHByb2dyYW1OdW1iZXI7CiAgICAgICAgIGNoYXIgaG9yc2VOYW1lW01BWF9OQU1FX0xFTl07CiAgICAgICAgIEhvcnNlU2V4IHNleDsgCiAgICAgICAgIGNoYXIgc2lyZVtNQVhfTkFNRV9MRU5dOyAKICAgICAgICAgY2hhciBkYW1bTUFYX05BTUVfTEVOXTsKICAgICAgICAgSG9yc2VXZWlnaHQgd2VpZ2h0OyAKICAgICAgICAgVHJhaW5lciB0cmFpbmVyOwogICAgICAgICBQYXN0UmFjZSBwYXN0UGVyZm9ybWFuY2VzW01BWF9QQVNUX1JBQ0VTXTsgCiAgICAgICAgIERhdGUgYmlydGhEYXRlOwogICAgICAgICBpbnQgcGFzdFJhY2VDb3VudDsKICAgICAgICAgZmxvYXQgbW9ybmluZ0xpbmVPZGRzOyAgICAgICAKICAgICAgICAgaW50IHBvc3RQb3NpdGlvbjsKICAgICAgICAgSm9ja2V5IGpvY2tleTsKICAgICAgICAgZmxvYXQgbGlmZXRpbWVFYXJuaW5nczsKICAgICAgICAgV29ya291dCB3b3Jrb3V0c1tNQVhfV09SS09VVFNdOwogICAgICAgICBpbnQgd29ya291dENvdW50OwogICAgICAgfSBIb3JzZURldGFpbHNBbmRQYXN0UGVyZm9ybWFuY2U7ICAgICAgICAgICAgICAvLyBUT0RPIC0gYWRkIG90aGVyIG1lbWJlcnMKCiAgICAgaW50IG1haW4gICggICl7Ci8vIE5PVEU6ICBZb3UgZG9uJ3QgaGF2ZSB0byBwb3B1bGF0ZSBhbnkgb2YgdGhlc2UhISEKc3RydWN0IGN1c3RvbWVyIG15UmFjZXNbMTBdOyAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYm9vayBteUhvcnNlc1syMF07CiAgICAgICAgIC8vIG5vdGhpbmcgZWxzZSBuZWVkcyB0byBiZSBhZGRlZCB0byBtYWluCiAgICAgICAgIHJldHVybiAoMCk7CiAgICAgfTsK