Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int maxHeight = 0;
- int maxLength = 5;
- int * lengths;
- void addLength(int length)
- {
- if (length > maxLength)
- {
- lengths = realloc(lengths, length * sizeof(int));
- for (int i = maxLength; i < length; ++i)
- lengths[i] = 0;
- maxLength = length;
- }
- int height = ++lengths[length-1];
- if (height > maxHeight)
- maxHeight = height;
- }
- int main()
- {
- lengths = malloc(maxLength * sizeof(int));
- char c;
- int wordlength = 0;
- while((c = getchar()) != EOF)
- {
- if (c == '\n')
- {
- addLength(wordlength);
- int length = maxLength;
- int width = 1;
- while (length)
- {
- length = length/10;
- width++;
- }
- for (int i = maxHeight-1; i >= 0; --i)
- {
- for (int word = 0; word < maxLength; ++word)
- {
- if (lengths[word] > i)
- {
- for (int j = 0; j < width; j++)
- printf("*");
- }
- else
- {
- for (int j = 0; j < width; j++)
- printf(" ");
- }
- printf(" ");
- }
- printf("\n");
- }
- for (int word = 0; word < maxLength; ++word)
- {
- printf("%*d ", width,word+1);
- }
- printf("\n");
- }
- else if(c == ' ') // found a new word
- {
- addLength(wordlength);
- wordlength = 0;
- }
- else if (c != ' ') //found a char
- {
- wordlength++;
- }
- }
- free(lengths);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement