From 3244e6968c5af150ca1d85a727533301b349dd0d Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Thu, 18 Nov 2021 19:28:50 +0800 Subject: 1.13. --- 1/13.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 1/13.c (limited to '1') diff --git a/1/13.c b/1/13.c new file mode 100644 index 0000000..8ecc549 --- /dev/null +++ b/1/13.c @@ -0,0 +1,49 @@ +#include + +#define MAXWRD 100 + +/* 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]; + + p = '0'; + cc = wc = 0; + + for (i = 0; i < MAXWRD; i++) + data[i] = 0; + + while ((c = getchar()) != EOF) { + if (wc >= 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; + } + } else { + cc++; + } + + p = c; + } + + for (i = 0; i < MAXWRD; i++) { + size = data[i]; + if (size == 0) + break; + + printf("%3d: ", i + 1); + + for (j = 0; j < size; j++) { + putchar('x'); + } + + putchar('\n'); + } + + return 0; +} \ No newline at end of file -- cgit v1.2.3