用c语言将一个5×5的矩阵中最大的元素放在中心,4个角分別放4个最小的元素(顺序为 从左到右•从上到下依次从小到大存放),写一函数实现之。用main 函数调用
时间: 2024-05-12 21:13:25 浏览: 74
以下是用 C 语言实现题目要求的函数和 main 函数:
```c
#include <stdio.h>
void sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
void max_center(int arr[][5]) {
int i, j, max_val, max_i, max_j;
// 找到最大元素
max_val = arr[0][0];
max_i = max_j = 0;
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
if (arr[i][j] > max_val) {
max_val = arr[i][j];
max_i = i;
max_j = j;
}
}
}
// 将最大元素放在中心
arr[max_i][max_j] = arr[2][2];
arr[2][2] = max_val;
// 找到最小元素
int min_vals[] = {arr[0][0], arr[0][4], arr[4][0], arr[4][4]};
sort(min_vals, 4);
// 将最小元素放在四个角
arr[0][0] = min_vals[0];
arr[0][4] = min_vals[1];
arr[4][0] = min_vals[2];
arr[4][4] = min_vals[3];
}
int main() {
int arr[5][5] = {
{9, 8, 7, 6, 5},
{4, 3, 2, 1, 0},
{19, 18, 17, 16, 15},
{14, 13, 12, 11, 10},
{24, 23, 22, 21, 20}
};
int i, j;
printf("Before max_center:\n");
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
printf("%d\t", arr[i][j]);
}
printf("\n");
}
max_center(arr);
printf("After max_center:\n");
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
printf("%d\t", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
上面的程序中,`sort` 函数实现了对一个整数数组按从小到大的顺序排序的功能。`max_center` 函数实现了将一个 5x5 的矩阵中最大的元素放在中心,四个角分别放四个最小的元素的功能。`main` 函数则定义了一个 5x5 的矩阵,调用 `max_center` 函数,然后输出结果。
你可以将上面的代码复制到一个 C 语言编译器中运行,看看程序的输出结果。
阅读全文