Сортировка матрицы только по одному из столбцов - C (СИ)
Формулировка задачи:
На основе стандартного qsort создал модификацию
нужно из двумерного массива сделать сортировку только по одному из столбцов
проблема в том что он постоянно выдает ошибку
Вероятно где то выходит за пределы массива,но я нигде не могу найти
при вызове функции из мэйна при любом last выдает ошибку(пробовал даже при единице)
Необработанное исключение в "0x00a83882" в "once_again.exe": 0xC00000FD: Stack overflow.
void swap(float a,float b) { int m; float help_arr; help_arr=a; a=b; b=help_arr; } void qs(float s_arr[][6], int first, int last) { int i = first, j = last, x = s_arr[(first + last) / 2][0]; do { while (s_arr[i][0] < x) i++; while (s_arr[j][0] > x) j--; if(i <= j) { if (i < j) swap(s_arr[i][0], s_arr[j][0]); i++; j--; } } while (i <= j); if (i < last) qs(s_arr, i, last); if (first < j) qs(s_arr, first,j); }
Всё,ошибку нашел
она была не в этом месте)
Решение задачи: «Сортировка матрицы только по одному из столбцов»
textual
Листинг программы
void swap(int *a, int *b){ int tmp = *a; *a=*b; *b=tmp; }
Объяснение кода листинга программы
- В функции swap происходит обмен значениями двух указателей a и b
- В функции сортировки матрицы по одному из столбцов происходит использование функции swap для обмена значениями элементов матрицы
- Функция сортировки матрицы по одному из столбцов работает с матрицей, которая заранее определена и содержит целочисленные значения
- В процессе сортировки матрицы по одному из столбцов происходит сравнение значений элементов матрицы и их последующая перестановка в нужном порядке
- Отсортированная матрица выводится на экран или сохраняется в файл для дальнейшего использования
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д