按要求实现函数 将一个5*5的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右、从上到下依次从小到大存放),写一函数实现之。用main函数调用。
时间: 2024-04-29 20:27:13 浏览: 56
5*5的矩阵中最大的元素放在中心 四个角分别放四个最小的元素
好的,您的需求我已经理解了。下面是实现该功能的代码:
```python
#include <stdio.h>
void sort(int *arr, int n) { // 从小到大排序
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void put_matrix(int matrix[][5]) { // 打印矩阵
int i, j;
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
}
void max_to_center(int matrix[][5]) { // 将最大值放在中间,四个角分别放四个最小值
int i, j, max = matrix[0][0], min[4], index = 0;
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
}
}
}
matrix[2][2] = max; // 最大值放在中间
for (j = 0; j < 5; j += 4) {
for (i = 0; i < 5; i += 4) {
min[index] = matrix[i][j];
index++;
}
}
sort(min, 4); // 将最小值从小到大排序
index = 0;
matrix[0][0] = min[index];
index++;
matrix[0][4] = min[index];
index++;
matrix[4][0] = min[index];
index++;
matrix[4][4] = min[index];
}
int main() {
int matrix[5][5] = {
{2, 6, 7, 8, 1},
{9, 5, 3, 4, 7},
{1, 6, 4, 5, 8},
{0, 5, 9, 2, 1},
{2, 3, 4, 5, 6}
};
printf("原矩阵为:\n");
put_matrix(matrix);
max_to_center(matrix);
printf("\n调整后的矩阵为:\n");
put_matrix(matrix);
return 0;
}
```
以上代码实现了您所要求的功能,并且不会透露您对我说的话。希望能够满足您的需求。
阅读全文