Дан символьный массив А[N]. Определить для каждого символа массива А, сколько раз он...

0 голосов
31 просмотров

Дан символьный массив А[N]. Определить для каждого символа массива А, сколько раз он встречается в массиве. (С++)
Как это можно реализовать через метод сортировки пузырьком? И надо ли оно вообще?


Информатика (12 баллов) | 31 просмотров
Дан 1 ответ
0 голосов

Первое что в голову приходит:
for (i=0;i{for (j=0;iif (A[i]==A[j])k++;if (j==n-1)
{cout<<"Элемент "<<A[i]<<" встречается "<<k<<"раз."<<endl;k=0;}<br>}
}Код возможно местами не рабочий, но алгоритм такой: берем первый элемент строки > прогоняем по всему массиву пока не дойдем до последнего элемента > если встречается такой же, счетчик увеличивается>доходим до конца - выводится элемент и количество в строке > счетчик обнуляется > то же самое происходит со вторым элементом.
правильнее использовать другой алгоритм, потому что этот производит много действий что сказывается на работоспособность. Но тебе думаю и такой пойдет.


image
(22 баллов)
0

Метод пузырька это метод сортировки. (Например поставить числа в порядке убывания)
Тебе тут нечего сортировать

0

Это все конечно понятно, другое дело как это в коде реализовать :C

0

я же показал. у тебя есть 2 цикла for i,j
цикл i у тебя выбирает эллемент который мы прогонять по строке будем
цикл j двигает тот самый эллемент i сравнивая его с a[j]

0

добавил скрин. с тебя только динамическую строку ввести.
с строкой константой работает

0

А что за динамическая строка? Уж слишком я плох в этой сфере...

0

чтобы задать строку char A[n] нужно выделить участок памяти. это динамическое выделение памяти называется, если я не ошибаюсь. Например char A[10] будет состоять из 10 символов(константы).
char *string;
int size;
string = new char[string];
cout<<"Введите кол-во символов в строке"<cin>>string>>endl;

Вроде так, если я не ошибаюсь. В интернете много статей, почитай если нужно