Форум программистов, компьютерный форум CyberForum.ru

помогите с подсчетом букв. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ заменить отрицательные елементы массива http://www.cyberforum.ru/cpp-beginners/thread355530.html
В общем, есть массив размерностью 100 элементов, диапазон от -100 до 100. Нужно заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов. Заранее спасибо)
C++ Дата и день недели В общем задача такая: надо реализовать функцию, которая на вход будет получать дату в формате (год, месяц ,день), и будет возвращать день недели,соответствующий данной дате, а также указание на то,я вляется ли данный год високосным.Подскажите, с помощью каких функций данная задача может быть решена http://www.cyberforum.ru/cpp-beginners/thread355523.html
C++ Двумерные массивы.
Помогите решить задачку!!!!!! Дана действительная квадратная матрица порядка 2N. Подучить новую матрицу, переставляя ее блоки размера N х N крест накрест.
C++ Задача Газон
Срочна нужна помощь в реализации в С++ Задачу нужно реализовать в с++ Газон Имя входного файла: lawn.in Имя выходного файла: lawn.out
C++ Задача Клавиатура http://www.cyberforum.ru/cpp-beginners/thread355513.html
Нужна реализация в С++ , заранее спс Задача Клавиатура Имя входного файла: keyboard.in Имя выходного файла: keyboard.out Максимальное время работы на одном тесте: 2 секунды Максимальный объем используемой памяти: 64 мегабайта Всем известно, что со временем клавиатура изнашивается, и клавиши на ней начинают залипать. Конечно, некоторое время такую клавиатуру еще можно использовать, но...
C++ последовательность дробных. чисел написать программу которая вычисляет среднее арифметические последовательности дробных вводимых с клавиатуры чисел. после ввода последнего числа программа должна вывести максимальное и минимальное число. последовательность должна выводиться во время работы программы подробнее

Показать сообщение отдельно
Golum
0 / 0 / 0
Регистрация: 23.09.2011
Сообщений: 3
23.09.2011, 19:33     помогите с подсчетом букв.
Здравствуйте,
Помогите, пожалуйста, дописать мой код. Вобщем программка должна подсчитывать количество каждого символа в веденной строке и выводить в таблицу.

Вот мой код. Сильно не ругайте=) Только учусь.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
int kol;
double otnch, entropia;
wchar_t c,k;
UnicodeString s;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//s=Ed->Text;
s="шла саша по шоссе и сосала сушку.";
SG->FixedCols=0;
SG->FixedRows=0;
SG->ColCount=5;
SG->RowCount=s.Length()+1;
SG->Cells[0][0]="№"; SG->ColWidths[0]=20;
SG->Cells[1][0]="Знак"; SG->ColWidths[1]=30;
SG->Cells[2][0]="Частота"; SG->ColWidths[2]=50;
SG->Cells[3][0]="Относительная частота (pi)"; SG->ColWidths[3]=150;
SG->Cells[4][0]="Энтропия (-pi*log2pi)"; SG->ColWidths[4]=115;
 
for (int k=1; k<s.Length()+1; k++){
    c=s[k];
    for (int i=1; i<s.Length()+1; i++){
        if (c==s[i]){
            ++kol;
        }
    }
    otnch=kol/(float)s.Length();
    entropia=(-otnch)*(log(otnch)/log(2.0));
    SG->Cells[0][k]=k;
    SG->Cells[1][k]=c;
    SG->Cells[2][k]=kol;
    SG->Cells[3][k]=otnch;
    SG->Cells[4][k]=entropia;
    kol=0;
}
}
Вобщем все считает правильно и выводит.
НО подсчитывает по несколько раз один и тот же символ.
Пример: строка "шла саша"
Выводит:
ш-2
л-1
а-3
" "-1
с-1
а-3
ш-2
а-3
Должен выводить:
ш-2
л-1
а-3
" "-1
с-1

Как это осуществить?

 Комментарий модератора 
Используйте теги форматирования кода!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru