From cef0d5f2cf74df2bf0a02524993ec0e6b68ebb08 Mon Sep 17 00:00:00 2001 From: Fudgerboy <91767657+Fudgerboy@users.noreply.github.com> Date: Mon, 19 Feb 2024 02:22:19 +0000 Subject: Sun, Feb 18, 2024, 6:22 PM -08:00 --- wk3/pset/plurality/plurality.c | 77 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 wk3/pset/plurality/plurality.c (limited to 'wk3/pset') diff --git a/wk3/pset/plurality/plurality.c b/wk3/pset/plurality/plurality.c new file mode 100644 index 0000000..27ec557 --- /dev/null +++ b/wk3/pset/plurality/plurality.c @@ -0,0 +1,77 @@ +#include +#include +#include + +// Max number of candidates +#define MAX 9 + +// Candidates have name and vote count +typedef struct +{ + string name; + int votes; +} candidate; + +// Array of candidates +candidate candidates[MAX]; + +// Number of candidates +int candidate_count; + +// Function prototypes +bool vote(string name); +void print_winner(void); + +int main(int argc, string argv[]) +{ + // Check for invalid usage + if (argc < 2) + { + printf("Usage: plurality [candidate ...]\n"); + return 1; + } + + // Populate array of candidates + candidate_count = argc - 1; + if (candidate_count > MAX) + { + printf("Maximum number of candidates is %i\n", MAX); + return 2; + } + for (int i = 0; i < candidate_count; i++) + { + candidates[i].name = argv[i + 1]; + candidates[i].votes = 0; + } + + int voter_count = get_int("Number of voters: "); + + // Loop over all voters + for (int i = 0; i < voter_count; i++) + { + string name = get_string("Vote: "); + + // Check for invalid vote + if (!vote(name)) + { + printf("Invalid vote.\n"); + } + } + + // Display winner of election + print_winner(); +} + +// Update vote totals given a new vote +bool vote(string name) +{ + + return false; +} + +// Print the winner (or winners) of the election +void print_winner(void) +{ + // TODO + return; +} -- cgit v1.2.3