Показать сообщение отдельно
иксуй!
Аватар для иксуй!
Сообщения: 9,544
Регистрация: 23.11.2007
Старый пост, нажмите что бы добавить к себе блог 27 октября 2010, 21:17
  #448 (ПС)
Помогите программу на С дописать. Осталась самая сложная часть.
В общем читаем символы функцией getchar(), нужно вывести вертикальную гистограмму с посчитанным количеством вхождений каждого символа, желательно соотношение в процентах. Вхождения символов '\n','\t' и т.п. тоже нужно учесть и вывести в гистограмме.
Не могу сделать этот самый вывод гистограммы.
В массиве symbol хранится количество вхождений c-го символа, т.е c - код символа, а symbol[c] - количество вождений c-го символа.

К примеру если ввели символы:
AAAA

bb
должно выводится примерно следующее, при высоте экрана гистограммы, к примеру 10:
Показать скрытый текст
#
#
#
#
#
# # #
# # #
# # #
# # #
# # #
A \n b

Код:
#define SCREENHIGH 40
#define SCREENLENGTH 60
#include <stdio.h>

int main()
{
    int maxChar,percent,k,countAll;
    int symbol[256]={0},c;   
  maxChar=0; 
  k=0;   
/*Ввод символов*/
  while ( (c=getchar() )!=EOF ){
    symbol[c]++;
    countAll++;
  }
  putchar('\n');
/***************/
/*Счётчик*/
  percent=countAll/100;
  for ( c=0,maxChar=symbol[0];c<256;c++ ) {
    if ( maxChar<symbol[c] ) maxChar=symbol[c];
  }     
/*Вывод гистограммы*/


putchar('\n');
return 0;
}

offline
Ответить с цитированием