From b6b22b5c5acbe317d7ad992b58169b0678e64a9a Mon Sep 17 00:00:00 2001 From: zlg Date: Thu, 29 Nov 2012 14:44:25 -0600 Subject: Clean up 1-13 and 1-20, correct 1-21 1-13 uses less variables and a for loop for the chart header 1-20 has minor changes 1-21 was rewritten to behave properly README has been rewritten to reflect the limitations of my solutions --- 1-13_word-length-histogram.c | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) (limited to '1-13_word-length-histogram.c') diff --git a/1-13_word-length-histogram.c b/1-13_word-length-histogram.c index 1e21378..d3115a5 100644 --- a/1-13_word-length-histogram.c +++ b/1-13_word-length-histogram.c @@ -6,18 +6,17 @@ int main(void) { /* Rundown of variables: - c = current input char - state = inside or outside a word - ltrs = letter count - wrds = word count - lines = you should be shot if you don't know - lengths = an array that keeps track of how often words up to x chars long - occur. - */ + * i, j = reusable placeholder variables + * state = inside or outside a word + * ltrs = letter count + * wrds = word count + * lines = you should be shot if you don't know + * lengths = an array that keeps track of how often words up to x chars long + * occur. + */ - int c, state, ltrs, wrds, lines, wlen; + int state, ltrs, wrds, lines, wlen, i, j; int lengths[MAXWLENGTH]; - int i; for (i = 0; i <= MAXWLENGTH; ++i) { lengths[i] = 0; } @@ -26,9 +25,9 @@ int main(void) { lines = 1; state = OUT; // Capture input until it ends - while ((c = getchar()) != EOF) { + while ((i = getchar()) != EOF) { // If it's whitespace, we've exited a word - if (c == '\n' || c == ' ' || c == '\t') { + if (i == '\n' || i == ' ' || i == '\t') { if (state == IN) { ++wrds; // ...and should increase the count. state = OUT; @@ -41,7 +40,7 @@ int main(void) { } /* If it's a new line, we're still out of a word but need to increment the line count */ - if (c == '\n') { + if (i == '\n') { ++lines; } } else { @@ -59,19 +58,18 @@ int main(void) { } printf("\n"); // End the chart heading. - int iter; - iter = MINWLENGTH; - while (iter <= MAXWLENGTH) { - i = lengths[iter]; + j = MINWLENGTH; + while (j <= MAXWLENGTH) { + i = lengths[j]; if (i > 0) { - printf("%2d | ", iter); + printf("%2d | ", j); while (i > 0) { printf("#"); i = i-1; } printf("\n"); } - ++iter; + ++j; } printf("%d words, %d chars, %d lines.\n", wrds, ltrs, lines); return 0; -- cgit v1.2.3-54-g00ecf mmit message (Expand)AuthorFilesLines 2019-04-29setup.py: Remove obsolete informationzlg1-1/+0 2019-01-03vgstash: Add "notes" filter to schemazlg1-1/+2 2018-11-21Prepare for distributionzlg2-1/+3 2018-10-22vgstash: let backlog filter ignore unbeatable gameszlg1-1/+1 2018-10-18Bump to 0.3beta2 for PyPIzlg1-3/+3 2018-10-18vgstash.DB.__init__: fix error output formattingzlg1-1/+1 2018-10-18README: fix inline <code> formattingzlg1-3/+4 2018-10-18cli: show msg if game to be deleted is not in DBzlg2-2/+12 2018-10-18README: expand on usage, cover shell quotingzlg1-7/+99 2018-10-18cli: Tell the user when a game lacks noteszlg2-3/+15 2018-10-18Catch when an invalid list filter is passedzlg4-3/+24 2018-10-12cli: Add zero-game import/export messageszlg2-11/+18 2018-10-10Bump to 0.3beta1 for PyPIzlg1-1/+1 2018-10-10Move tests and data to dedicated directoryzlg7-10/+26 2018-10-10cli: Add "export" commandzlg2-5/+54 2018-10-10cli: Add "import" commandzlg5-1/+76 2018-10-09Bump to 0.3alpha6 for PyPIzlg1-1/+1 2018-10-09cli: Add "notes" commandzlg2-4/+74 2018-10-09update_game: ensure notes are also savedzlg1-2/+2 2018-10-09cli: add 'update' commandzlg3-20/+92 2018-10-06cli: Add "delete" commandzlg2-0/+19 2018-10-06Remove ID field from DBzlg3-38/+46 2018-10-06cli: change "Status" heading to "Progress"zlg2-36/+40 2018-09-29Bump to 0.3alpha5 for PyPIzlg1-1/+1 2018-09-29cli: Add pretty printing to 'list' commandzlg3-17/+107 2018-09-08setup.py: Bump to alpha4 for PyPIzlg1-1/+1 2018-09-08cli: add '--raw' option to list commandzlg2-9/+45 2018-09-08Add remaining filters to vgstash packagezlg1-2/+11 2018-09-04Update LICENSE to match setup.pyzlg1-80/+67 2018-09-03Branch off from master with pytest, tox, clickzlg16-778/+779 2018-03-18Flesh out filter types and ownership statuszlg3-82/+144 2018-03-18README.mdown: break line correctlyzlg1-1/+1 2018-03-18add 'playlog' list filterzlg2-2/+9 2018-03-13Update helpers a bitzlg1-2/+9 2018-03-13Make VGSTASH_DB_LOCATION point to a filezlg2-21/+20 2016-11-18Remove settings from helpers.shZe Libertine Gamer1-5/+0 2016-11-15Correct phrasing in README.Ze Libertine Gamer1-4/+4 2016-11-13DerpZe Libertine Gamer1-0/+1 2016-11-03Improve error handling in shell scriptsZe Libertine Gamer4-3/+23 2016-10-24Correct run_again, add recursionZe Libertine Gamer1-0/+4 2016-10-21Add quotes to correct behavior for arglistZe Libertine Gamer1-1/+1 2016-10-14updater.sh: add recursion, error handlingZe Libertine Gamer1-43/+101 2016-10-14Correct pipe-handling behaviorZe Libertine Gamer1-1/+9 2016-10-12Clarify a method to move between platformsZe Libertine Gamer1-2/+5