From bfd2c1b7774a7c7fa8d07d3b8de4794c56459db6 Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Thu, 18 Nov 2021 19:37:34 +0800 Subject: Improve code. --- 1/13.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) (limited to '1') diff --git a/1/13.c b/1/13.c index e08cf46..ba093ad 100644 --- a/1/13.c +++ b/1/13.c @@ -4,40 +4,36 @@ /* prints a histogram of lengths of words in the input */ int main(int argc, char *argv[]) { - int i, j, p, c, wc, cc, size; - int data[MAXWRD]; + int i, j, prev, curr, wordc, charc; + int stats[MAXWRD]; - p = '0'; - cc = wc = 0; + prev = '0'; + charc = wordc = 0; for (i = 0; i < MAXWRD; i++) - data[i] = 0; + stats[i] = 0; - while ((c = getchar()) != EOF) { - if (wc >= MAXWRD) { + while ((curr = getchar()) != EOF) { + if (wordc >= MAXWRD) { printf("Max word count %d exceeded\n", MAXWRD); return 1; } - if (c == ' ' || c == '\t' || c == '\n') { - if (p != ' ' && p != '\t' && p != '\n') { - data[wc++] = cc; - cc = 0; + if (curr == ' ' || curr == '\t' || curr == '\n') { + if (prev != ' ' && prev != '\t' && prev != '\n') { + stats[wordc++] = charc; + charc = 0; } } else { - cc++; + charc++; } - p = c; + prev = curr; } - for (i = 0; i < MAXWRD; i++) { - size = data[i]; - if (size == 0) - break; - + for (i = 0;(charc = stats[i]) > 0 && i < MAXWRD; i++) { printf("%3d: ", i + 1); - for (j = 0; j < size; j++) + for (j = 0; j < charc; j++) putchar('x'); putchar('\n'); } -- cgit v1.2.3