Дата публикации:

Работает через одно место. Задача на СИ..

df28b31f

Работает через одно место. Задача на СИ..

Проблема в вашей функции sortingsize. Внутри второго цикла вы используете условие j < middle, которое никогда не будет выполнено, так как j начинается с i, а i всегда меньше middle. В результате, второй цикл никогда не выполняется, и элементы после середины массива не сортируются.

Вот исправленный код функции sortingsize:

int sortingsize(char *arr, const int size, const int middle) {
    char temp = 0;
    for (int i = 0; i < middle; i++) {
        for (int j = i; j < middle; j++) {
            if (arr[i] > arr[j]) {
                temp = arr[j];
                arr[j] = arr[i];
                arr[i] = temp;
            }
        }
    }
    for (int i = middle; i < size; i++) {
        for (int j = i; j < size; j++) {
            if (arr[i] > arr[j]) {
                temp = arr[j];
                arr[j] = arr[i];
                arr[i] = temp;
            }
        }
    }
    return 0;
}

Теперь элементы после середины массива также будут сортироваться.