Guest User

Untitled

a guest
Jul 22nd, 2017
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.84 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int c, i, summcount, savenum; // переменная для организации чтения потока, коунтер цикла, техническая переменная для проверки окончания построения гистограммы, техническая переменная для отбрасывания пустого цикла
  6. int symbinword[10000]; // массив для построения гистограммы
  7. for (i = 0; i <= 10000; ++i) symbinword[i] = 0; // обнуление массива
  8. i = 0; // обнуление коунтера
  9. summcount = 0; // обнуление технической переменной
  10. while ((c = getchar()) != EOF) { // Цикл действующий до значения конца файла.
  11.     if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) ++symbinword[i]; // Если буква, инкримирует ячейку массива
  12.     else { // Иначе
  13.             ++i; // инкримирует коунтер
  14.             while (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))) { //Пока не встретит букву
  15.                 c = getchar(); // Запрашивает символ для чтения
  16.                 if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) ++symbinword[i]; //Если встречает букву, инкримирует уже новую ячейку(костыль).
  17.                 }
  18.             }
  19.         }
  20. for (i = 0; i <= 10000; ++i) { // После конца файла, ищет значение коунтера, после которого все ячейки имеют внутри ноль.
  21.     if (symbinword[i] != 0) savenum = i; // Сохраняет значение коунтера.
  22. }
  23. while (summcount != -1) { // Условие, если сумма всех ячеек массива -1, цикл завершается.
  24.     summcount = 0; // обнуляем сумму каждый раз при запуске цикла.
  25.     for (i = 0; i <= savenum; ++i) { // Крутим задействованные ячейки массива
  26.         if (symbinword[i] != 0) printf("|"); //Если ячейка не пуста, принтим 1 часть гистограммы.
  27.         else printf(" "); // Если пуста, ставим пробел
  28.         summcount = summcount + symbinword[i]; // Считаем сумму.
  29.         if (i == savenum) { // Если пошла последняя задействованная ячейка массива
  30.             printf("\n"); // Переводим строку(косметика).
  31.             summcount = summcount - 1; // Минусим 1 от суммы, чтобы в случае, если все ячейки пусты получить -1 и закончить цикл.
  32.             }
  33.         }
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment