summaryrefslogtreecommitdiff
path: root/wk3/pset
diff options
context:
space:
mode:
authorFudgerboy <91767657+Fudgerboy@users.noreply.github.com>2024-02-19 02:22:19 +0000
committerFudgerboy <91767657+Fudgerboy@users.noreply.github.com>2024-02-19 02:22:19 +0000
commitcef0d5f2cf74df2bf0a02524993ec0e6b68ebb08 (patch)
tree3da4e6c0da159f13a19bb739617ae4477aa4b1fe /wk3/pset
parent3728487c49c2ae19c8aa842ee849deadc21fff90 (diff)
Sun, Feb 18, 2024, 6:22 PM -08:00
Diffstat (limited to 'wk3/pset')
-rw-r--r--wk3/pset/plurality/plurality.c77
1 files changed, 77 insertions, 0 deletions
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 <cs50.h>
+#include <stdio.h>
+#include <string.h>
+
+// 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;
+}