偶数阶n×n方阵两条对角线排序问题及修正后实现代码
n×n数组双对角线排序实现
给定一个n×n的数组(n为偶数),需要完成以下两个排序操作:
- 将从[0,0]起始的主对角线元素按升序排列
- 将从[n-1,0]起始的副对角线元素按降序排列
已完成问题排查,以下是可输出正确结果的C语言实现代码:
void sortDiagonals (int n, int arr[100][100]) { // 主对角线升序排序 for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (arr[i][i] > arr[j][j]) { int temp = arr[j][j]; arr[j][j] = arr[i][i]; arr[i][i] = temp; } } } // 副对角线降序排序 for (int i = n - 1, j = 0; i > 0, j < n - 1; i--, j++) { for (int a = i - 1, b = j + 1; a >= 0, b <= n - 1 ; a--, b++) { if (arr[i][j] > arr[a][b]) { int temp = arr[i][j]; arr[i][j] = arr[a][b]; arr[a][b] = temp; } } } }
内容的提问来源于stack exchange,提问作者hi_hanne
相关产品推荐
相关产品推荐

