我被要求在给定行数,列数和指向矩阵的第一个元素(左上角元素)的指针的情况下对矩阵的每一行进行排序。以下是完整的问题:Homework Question
到目前为止,我已经能够提出这个代码:
void SortRowsOfMatrix(int rows, int columns, float* first_element) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < columns; ++j) {
for (int k = j + 1; k < columns; ++k) {
if (first_element[i + j] > first_element[i + k]) {
float temp = first_element[i + j];
first_element[i + j] = first_element[i + k];
first_element[i + k] = temp;
}
}
}
}
}
手动追踪代码后,我注意到函数将对矩阵的第一行进行排序,但只对第一行进行排序。我已经尝试修改代码来对剩余的行进行排序,但到目前为止我没有运气。