编写C语言程序写一个函数,将一个5×5的整型矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放)。所有的元素调整都需要通过位置的交换实现。在main函数中输入和输出矩阵,通过调用函数来实现矩阵的处理过程。
时间: 2024-06-09 07:07:12 浏览: 90
以下实现该功能的C语言程序:
```c
#include <stdio.h>
// 交换两个元素的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 将最大元素放到中心,四个角分别放最小的元素
void adjust_matrix(int matrix[5][5]) {
int max_row = 0, max_col = 0, min1_row = 0, min1_col = 0, min2_row = 0, min2_col = 0, min3_row = 0, min3_col = 0, min4_row = 0, min4_col = 0;
// 找到最大元素的位置
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] > matrix[max_row][max_col]) {
max_row = i;
max_col = j;
}
}
}
// 找到四个最小元素的位置
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] < matrix[min1_row][min1_col]) {
min1_row = i;
min1_col = j;
}
}
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] < matrix[min2_row][min2_col] && (i != min1_row || j != min1_col)) {
min2_row = i;
min2_col = j;
}
}
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] < matrix[min3_row][min3_col] && (i != min1_row || j != min1_col) && (i != min2_row || j != min2_col)) {
min3_row = i;
min3_col = j;
}
}
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] < matrix[min4_row][min4_col] && (i != min1_row || j != min1_col) && (i != min2_row || j != min2_col) && (i != min3_row || j != min3_col)) {
min4_row = i;
min4_col = j;
}
}
}
// 将最大元素移到中心
swap(&matrix[max_row][max_col], &matrix[2][2]);
// 将四个最小元素移到四个角
swap(&matrix[min1_row][min1_col], &matrix[0][0]);
swap(&matrix[min2_row][min2_col], &matrix[0][4]);
swap(&matrix[min3_row][min3_col], &matrix[4][0]);
swap(&matrix[min4_row][min4_col], &matrix[4][4]);
}
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的矩阵:
3 7 2 5 8
1 6 4 9 2
4 8 7 1 6
2 3 5 6 4
9 5 1 3 7
调整后的矩阵为:
1 5 2 5 9
8 6 4 3 7
4 7 6 8 2
3 2 5 7 4
8 9 1 6 3
```
阅读全文