From 9281747d547107179d42b7a3c64bc696ed332013 Mon Sep 17 00:00:00 2001 From: Om Raheja Date: Wed, 28 Aug 2024 18:28:53 -0400 Subject: [PATCH] made it compile --- rank.h | 10 ++++++---- weightedrank | Bin 51056 -> 51040 bytes weightedrank.c | 33 ++++++++++++++++----------------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/rank.h b/rank.h index c8588fe..a90ae84 100644 --- a/rank.h +++ b/rank.h @@ -20,9 +20,9 @@ struct RankList struct WRankList { int rank_count; - struct Weighted rank[M_STR]; - struct Weighted srank[3][M_STR]; -} + struct Rank rank[M_STR]; + struct Rank srank[3][M_STR]; +}; struct Weighted { @@ -43,7 +43,9 @@ struct WAlloc }; void isort(char [][M_STR], struct Rank[], int); -void rank(struct RankList *); +void rank(struct Rank *, int); void print_ranklist(struct RankList *); +int rrlstdin(struct Rank[]); + #endif diff --git a/weightedrank b/weightedrank index 0e9cc77befc9f424ca4d6eed626a39ec004e2a26..6327a5b3290fa202627623e5213d28cb07b27183 100755 GIT binary patch delta 3634 zcmbVPeNa@_6~A{M=-UMZM2iB+F4D@PQ9(XeKwg8>8e?q2(2NtKNWsxn5rU>_4YRAJ zNsJ%m-R30yyESLCd@r;!5jRr`}Wz3rZzJ?ygwqd0+(*UEuQ?NS3Poz}q zM7+s>$zmWXHTqC5W9jNMN#dsDOt|yb&Rf%$mm7T1hDV9sv-pbX|=4a+cVbofO|ECn`a0HVZ;cpByI+WY7B6*Cp06P^I_=bCqDA zoB@=e#Jq1vplf)SIUCU?wx(b$!B}Sv zV`>!h_D_(+%$#CRPLc|B2~TW)uUqEUy^Py0Cvw&@DJ&~5PyNcmT5P~|dAGR>kqGI* z-aoJ>0gu8N(tmk;JellbiA*tS{_7R`+EFwNH=c#_!{T}%d*xB!8 zZJt|QAOwn8aG)50?y{%>I}7fr_V#yzuG!&G4pSqI<8b1t-P?aPl?4YS>DU4AT}?&) zh<8qu&TBOcC0^qBVI)tM9FnISo7r|N%=D6>P=>-`iK$M`f_he+`D(KmnV;<0297|6 z5*+wBSDWemLv~6lG-`ojWyB)zp>m4(XFRGw3OZ*@m(rQ9{s3nvR~p=uVX9e6BUvz8 z30gQpu^FLAW9H<<$&Tc8HwSuhWL8nV5oC!#Eil}Cd-uH1K!VKWB)$0M#0G0GG> z^OC+x$B1iBBv*t(DPhsxo&D}`#T#c{!WoKwfN;Z9>gv1V4|!?R;wX&-)@xMu>x{A; z6mj`$J;P`c%&LkDSjT(W#jzchj0lU{zaU2^O zZE(L!&O&FRv)T<4iEii2HG_P^I}B(}uPjtg(;0~!)9lQp+3%gx!smzji~?PTA@DfFXTP8C{3L@f8BSz)eS7s(#OSH8Q7VXT_xiG$ zLNrPbwTfpJMu9Wh$kWY2wFbsK3kcLBwDkyM&`3#mSVA}i^;?^)hc$RWxhBC@tWK`D z$ViMAm#z@J;hHe^btkaz%cEgY@AtUm5t9N4`!59$^gspReVBq&DEI;nke8ZdI|ikp znU`0j!f6a(((@gYC;x{cN?RCYv9c&xEG?34u~0$OyG*PqN?nO`h12&c>L{FQorctJ z18o2)8bs=;E|#F7J9e)cjjSDW|Mr0gHKvYBBE>b64~lQPk~~@X{)KC2arC|Rq5Q8!{1g)@iClTLi^mdm+DDB2Rg~5b5@+wB&)dO zdW3%@MqEWaPRv>`pSO#Z3#K_~Gaeso48GwcD#Fl=;1Coz%2fL1(YLHY{B%KP)N2we z6iV?_38%!+g5_KjrNz^p1~!cI*J2dk2GrO-hqq!w(_@F7?%CbfK*wO!BfJN6c}~`0 zx-97WV(!;B2wim9nJ11ECwoZZ7dZJOBwmYQdND;xHcKF>1F$$OWx6qVwIn0INzB)b zT>h`zA+IfCJ1RwP$t?agv8v?Y8>N>PxwovT+dOyfTwCgj>^hdZBBw5OMeh8%g$^CJ zg(*38m5ncMs;Sf>>AtzC@iO^_{m$}%U%Ml;LO zXvPmsV64*0xMCAum9=yoRMwZNtL5K#W0mMmFi#eV{@UVNTz_8&{0#630GB9!888I6 z39xX+(*TbFN&rg%%K_^-6ZL1Oi65W+CGN^#tYXEq(&ZO1--3s~3XhgXJg#iSqkTPg zt2b?6X^k5e=}V(AjwC*JQVNMSQy++4kO4J+_h?XxLqot96cucK`kn;`g^Ob=TC z`M~JT8;_UpO&-@#9iQR~?c*Y@DqqvM`?79u5bMb|n6!SbDBFT5(udEdJBXER1acH~sk5HSV?RP_vDcZufS_97pNt zBa=o7&h!plxsmYB)_K!2w?6geXz!g*OUrCx_?%;P&6B>r^u4;(dGyAGsq1eHEieCQ z*RN+bSZ8mqs6GA4-j^3GopO8pgDcbDj&WtAvwBC}BK2|SJN9S)dVT+Ajmo?GGiLNI z`_byYw*zZ>o<8F*JvZsP{PCjq-+Jm_laADu=KP|lM!0_$$c)>t_S+lN<@0|(fArMi csrm2zzBcBxItwEQ8Y#yjiLM0 zj^mbUdAUxagA?eONx@`B8m0}KNx~9ir=2)SSyS7zlej>VS)v_@?R3~ELx1PJU0sO% zr*G%nx98*j&bjxTbKeaeH%}Zlcl>$&b|;Y_qK}d=;MwlfMjuF1stsvCmk}wlRMgC; z6^8VfDJote4~b93N!eh^7OAq$bV=-z8_aq49R*?;k(vs-qeDbZc=MbEJnvnig?KsT zDRZ`M4*n&A(&dOHJE8kLQJ%ITT~3$_Q+Iv8b?wE|5437$THbYBc=+eC&{ARA?v$G> z>vJan%HTyHelsXPi$Tmk(m!muUMwdpugSpu=_!5Idz47Hgd$d=K5LpBy}wwHOm=2H zdc{O1!gWf-D(I_lV%I{vT?jq{7#&3A+9dRaq}GQ!$^SLv(>H~i^`RFP|Hx`3f>m{_ z{AIb82jI;_nuXNhs7XHStnz9Z8r-F>-T&%*;6G)JiN zXBfNXOQks(|1Q^F0cyCe)4RPdCZF~@Rk6Rdf^ z!u=-AiZJ8c=w2R||6H1tzLGJs49v&*f4>QsnVb4o-WBx0cu=fsHfS~UGeS={LjN{H zryFkACiI3`{;Dj?TX$D4`B5*7&f$lXC=%VF4tj367D}PWV)j&p43y5*R&gmLVY5h}zh44+hsFlY~rG#oJcIEx{Hw_Js}xeNkg)wB|x^bOSY|S3J^vT^=l7B+}$d z<(cA={9XB0@86+Cqt^%UzP0n6-l+qkcdCvw+r_SWG-6+>389*5E>G7e!_$Y|!$t#g zzbTQP!%HSZ1$qH=P^wFN4;a&{$**T`wc@uup8gD>GgZvnIY?CtU|uh3R-T4wrLZLH+~aKt%{QMQoBD>CJC z6;?aatyg;*i?Y4QQ!H;jBwa6rST0@Ue-<*{ve=P1jt1ps8-eT)j?sJ3Pi9h|522sN z(WGJ2#+T3~4XVM1pj*>iGQjiss2zoli)tNgdk=4%w&(vu4~|!URKGSbKx!~D{4#D z%gQQh{a4M_vn-D-hpXf)=B*qDTI=azSErio96)SmPhfv|LXD z&rSL!?loPm_=`}_XrlU}(vnWD+pCb{q|}q?gPguo)T#RiM$CWAcd0y9m9;S*X*`Ma zf{jOvpRK1nF8W2tj~-=uw0zRZuc1_8X*IGclH}rQrv9a^4)HPfQKPd99Bq+Ei@fK6G{lXy*sC9=!N zP=Pn2k|Qy$c`5i4yS(D|Ma&nv4L$CjIc!+g=OO#i@!Tw3S7-76n#J=i zEIt5}!QA$T(}-;H)cGorD2LDc67)pLzQBUGY`-S+FJwyPf-B(>hl%FmMxXCW`Un&G z5zjO>Z*AJsxP^EKV0_fj7#q~PA`1uNBuweVE36L^2dKr zl;+Z_y;=K8%Ie0P_q6{t=;{2VU|Zcub%*D}g;`@)JhiJH&Dbz?CH!zO|BUiPd;ZeT zU0=8o{&Qf%@2?d1y|@3C8z7;Amc2);->s}kYyN!SpB{YYK>w;2^WJQ;hOEuG-`jbr K<86x(9sL*l-r$%3 diff --git a/weightedrank.c b/weightedrank.c index 84c5944..635730c 100644 --- a/weightedrank.c +++ b/weightedrank.c @@ -59,8 +59,7 @@ main(int argc, char *argv[]) } items->rank_count = rrlstdin(items->rank); - memcpy(items->srank, items->rank, sizeof(items->rank)); - rank(items); + rank(items->srank, items->rank_count); if (!weighted) { // print the rank list @@ -114,11 +113,11 @@ main(int argc, char *argv[]) } printf(BOLDRED "\nRank according to %s\n\n" RESET, weighted.opt1); - rank(&mem->r[0]); + rank(mem->rl.srank[0], mem->rl.rank_count); printf(BOLDRED "\nRank according to %s\n\n" RESET, weighted.opt2); - rank(&mem->r[1]); + rank(mem->rl.srank[1], mem->rl.rank_count); printf(BOLDRED "\nRank according to %s\n\n" RESET, weighted.opt3); - rank(&mem->r[2]); + rank(mem->rl.srank[2], mem->rl.rank_count); w_end: @@ -154,12 +153,13 @@ isort(char matrix[][M_STR], struct Rank to_sort[], int len) { } int -rrlstdin(struct Rank items[]) { +rrlstdin(struct Rank items[]) +{ printf(BOLDWHITE "Enter items...\n" RESET); int i; for (i = 0; i < M_STR; i++) { // local buffer for name - char *name = items->rank[i].name; + char *name = items[i].name; puts(BOLDGREEN "> " RESET); fgets(name, M_STR_LEN, stdin); @@ -179,10 +179,13 @@ rrlstdin(struct Rank items[]) { } name[nl] = '\0'; } + + return i; } void -rank(struct RankList *items) { +rank(struct Rank *items, int i) +{ // construct matrix of comparisons // NOTE: it doesn't actually store the "reason", // it just forces the user to type something out lol @@ -194,19 +197,19 @@ rank(struct RankList *items) { // compare all of the elements for (int j = 0; j < i; j++) { for (int k = j + 1; k < i; k++) { - printf("%s vs %s (>/<): ", items->rank[j].name, items->rank[k].name); + printf("%s vs %s (>/<): ", items[j].name, items[k].name); // read one char, set matrix accordingly char c = getchar(); if (c == '>') { matrix[j][k]++; - items->rank[j].score++; + items[j].score++; } else if (c == '<') { matrix[k][j]++; - items->rank[k].score++; + items[k].score++; } else { printf("Setting to " BOLDRED "<" RESET ": %c\n", c); matrix[k][j]++; - items->rank[k].score++; + items[k].score++; } // clear input buffer @@ -220,12 +223,8 @@ rank(struct RankList *items) { } } - memcpy(items->srank, items->rank, sizeof(struct Rank) * M_STR); - - items->rank_count = i; - // insertion sort: the array **should be** nearly sorted - isort(matrix, items->srank, i); + isort(matrix, items, i); } void