c语言写一个函数,将一个5×5的整型矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放)。所有的元素调整都需要通过位置的交换实现。在main函数中输入和输出矩阵,通过调用函数来实现矩阵的处理过程。
时间: 2024-06-09 11:09:17 浏览: 94
下面是一个实现该功能的 C 语言函数和一个示例程序:
```c
#include <stdio.h>
// 将 5x5 的整型矩阵中最大的元素放在中心,4个角分别放4个最小的元素
void adjust_matrix(int matrix[5][5]) {
int max_value = matrix[0][0], max_i = 0, max_j = 0;
int min_values[4], min_is[4] = {0, 0, 4, 4}, min_js[4] = {0, 4, 0, 4};
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] > max_value) {
max_value = matrix[i][j];
max_i = i;
max_j = j;
}
}
}
for (int k = 0; k < 4; k++) {
min_values[k] = matrix[min_is[k]][min_js[k]];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] < min_values[k]) {
min_values[k] = matrix[i][j];
min_is[k] = i;
min_js[k] = j;
}
}
}
}
// 调整元素位置
int temp = matrix[2][2];
matrix[2][2] = max_value;
matrix[max_i][max_j] = temp;
for (int k = 0; k < 4; k++) {
temp = matrix[min_is[k]][min_js[k]];
matrix[min_is[k]][min_js[k]] = min_values[k];
matrix[min_is[k]][min_js[k]] = temp;
}
}
int main() {
int matrix[5][5];
printf("请输入 5x5 的整型矩阵:\n");
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &matrix[i][j]);
}
}
adjust_matrix(matrix);
printf("调整后的矩阵为:\n");
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
示例运行结果:
```
请输入 5x5 的整型矩阵:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
调整后的矩阵为:
1 2 3 4 5
6 12 8 14 10
11 17 13 19 15
16 22 18 24 20
21 23 25 9 7
```
阅读全文