From 179c9e125dc453d760a8fcf37877377d400dc628 Mon Sep 17 00:00:00 2001 From: Om Raheja Date: Thu, 29 Aug 2024 11:57:27 -0400 Subject: [PATCH] made it work for the most part --- rank.h | 7 ++++--- weightedrank | Bin 51040 -> 51104 bytes weightedrank.c | 27 +++++++++++++-------------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/rank.h b/rank.h index a90ae84..68df01c 100644 --- a/rank.h +++ b/rank.h @@ -13,14 +13,14 @@ struct Rank struct RankList { int rank_count; - struct Rank rank[M_STR]; + char rank[M_STR][M_STR_LEN]; struct Rank srank[M_STR]; }; struct WRankList { int rank_count; - struct Rank rank[M_STR]; + char rank[M_STR][M_STR_LEN]; struct Rank srank[3][M_STR]; }; @@ -46,6 +46,7 @@ void isort(char [][M_STR], struct Rank[], int); void rank(struct Rank *, int); void print_ranklist(struct RankList *); -int rrlstdin(struct Rank[]); +/* read string from stdin */ +int rsstdin(char [][M_STR_LEN]); #endif diff --git a/weightedrank b/weightedrank index 6327a5b3290fa202627623e5213d28cb07b27183..35129c272b1f5efb9d473499d25d7771e616fdc2 100755 GIT binary patch delta 2688 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 diff --git a/weightedrank.c b/weightedrank.c index 635730c..597358d 100644 --- a/weightedrank.c +++ b/weightedrank.c @@ -58,7 +58,8 @@ main(int argc, char *argv[]) } } - items->rank_count = rrlstdin(items->rank); + items->rank_count = rsstdin(items->rank); + memcpy(items->srank, items->rank, sizeof(struct Rank) * items->rank_count); rank(items->srank, items->rank_count); if (!weighted) { @@ -153,31 +154,29 @@ isort(char matrix[][M_STR], struct Rank to_sort[], int len) { } int -rrlstdin(struct Rank items[]) +rsstdin(char items[M_STR][M_STR_LEN]) { - printf(BOLDWHITE "Enter items...\n" RESET); + puts(BOLDWHITE "Enter items..." RESET); int i; for (i = 0; i < M_STR; i++) { // local buffer for name - char *name = items[i].name; - - puts(BOLDGREEN "> " RESET); - fgets(name, M_STR_LEN, stdin); + printf(BOLDGREEN "> " RESET); + fgets(items[i], M_STR_LEN, stdin); // if its an empty string, stop reading - if (name[0] == '\n') { - name[0] = '\0'; + if (items[i][0] == '\n') { + items[i][0] = '\0'; break; } // remove newline - char nl = strcspn(name, "\n"); - if (nl != '\n' || nl != 0) { + char nl = strcspn(items[i], "\n"); + if (items[i][nl] != '\n' && items[i][nl] != 0) { // it was cut off puts(BOLDRED "Truncated to 255 chars." RESET); - name[nl] = '\0'; + items[i][nl] = '\0'; } - name[nl] = '\0'; + items[i][nl] = '\0'; } return i; @@ -232,7 +231,7 @@ print_ranklist(struct RankList *items) { printf(BOLDRED "Original: " RESET " | " BOLDGREEN "Sorted: " RESET "\n\n"); for (int j = 0; j < items->rank_count; j++) { printf("%s: %d | %s: %d\n", - items->rank[j].name, items->rank[j].score, + items->rank[j], items->rank_count - j - 1, items->srank[j].name, items->srank[j].score); } }