n
настроен неправильно.
При n = j;
концептуально это должно быть n = j+1;
, чтобы n
представлял n
слов, а не последний индекс.
// n = j;
n = j+1;
Без вышеуказанного изменения массив не полностью отсортирован, так как n
обрабатывается как количество слов, но он слишком мал 1.
Неправильно отсортированный массив равен
Martha!, Please!, Stop!, Why, Why, did, did, name?, say, say, that, that, you, you, name?
Неполная сортировка и теперь использование n
в качестве последнего индекса испортило подсчет частоты, так как "name?"
был найден дважды, но не в последовательном порядке - таким образом, перепрыгивая через первую "say"
.
// for (j = i + 1; j <= n; j++) {
for (j = i + 1; j < n; j++) {
Исправлен вывод кода
Martha! 1
Please! 1
Stop! 1
Why 2
did 2
name? 2
say 2
that 2
you 2