summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorLibravatar Mubashshir <ahmubashshir@gmail.com>2023-05-21 22:10:21 +0600
committerLibravatar Mubashshir <ahmubashshir@gmail.com>2023-05-21 22:43:46 +0600
commit5942f6125ea85bc78fc3df7b2f72b41260f4b4a2 (patch)
tree5311444a5a2ed63468ef0afb837303edba0ff08b /src/main.c
downloadc-obp-example-5942f6125ea85bc78fc3df7b2f72b41260f4b4a2.tar.gz
c-obp-example-5942f6125ea85bc78fc3df7b2f72b41260f4b4a2.zip
Initial commit
Signed-off-by: Mubashshir <ahmubashshir@gmail.com>
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..faf76f7
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,55 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "teams.h"
+#define getline(x, y) \
+ while(((x)[strcspn((x), "\r\n")] = 0) == 0 && strncmp((x), "", (y)) == 0) \
+ fgets((x), (y), stdin)
+
+int main()
+{
+ unsigned num = 0, i = 0;
+ char line[255] = "";
+ TEAM *teams;
+
+ getline(line, 255);
+ sscanf(line, "%u", &num);
+ strncpy(line, "", 255);
+ teams = (TEAM *)malloc(sizeof(TEAM) * num);
+
+ if (teams == NULL) {
+ printf("Failed to reserve memory");
+ return 1;
+ }
+
+ for(i = 0; i < num; i++) {
+ teams[i] = team_new();
+ unsigned idx = 0, s = 0;
+ while (idx ++ < 6) {
+ getline(line, 255);
+ switch(idx) {
+ case 1:
+ team_set(teams[i], name, line);
+ break;
+ case 2:
+ team_set(teams[i], institution, line);
+ break;
+ case 3:
+ sscanf(line, "%u", &s);
+ team_set(teams[i], solved, s);
+ break;
+ case 4: // falls through
+ case 5: // falls through
+ case 6:
+ team_set(teams[i], member_name, idx - 3, line);
+ break;
+ default:
+ break;
+ }
+ strncpy(line, "", 255);
+ }
+ }
+ team_printf(team_find_champion(teams, num));
+ return 0;
+}