将一个5×5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下依次从小到大存放),写一函数实现并用main函数调用。
#include <stdio.h>
void findMinMax(int *matrix, int size, int *min, int *max) {
*min = *max = matrix[0];
for (int i = 1; i < size; i++) {
if (matrix[i] < *min) *min = matrix[i];
if (matrix[i] > *max) *max = matrix[i];
}
}
void rearrangeMatrix(int matrix[5][5]) {
int temp[25], k = 0;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
temp[k++] = matrix[i][j];
}
}
int min1, min2, min3, min4, max;
findMinMax(temp, 25, &min1, &max);
temp[min1 - temp[0]] = temp[24]; // Put largest at the end to avoid re-selection
findMinMax(temp, 24, &min2, &max);
temp[min2 - temp[0]] = temp[23];
findMinMax(temp, 23, &min3, &max);
temp[min3 - temp[0]] = temp[2