用c语言写一个程序:定义一个M*M矩阵,输入和输出矩阵。找出矩阵中的最大值和最小值,将最大值放到矩阵的中心,将最小值放到矩阵的首地址中。
时间: 2024-05-06 09:13:19 浏览: 87
你可以使用C语言编写一个程序来实现这个功能。下面是一个示例程序:
```c
#include <stdio.h>
#define M 3 // 定义矩阵的大小
// 找出矩阵中的最大值和最小值,并将最大值放到矩阵的中心,最小值放到矩阵的首地址中
void processMatrix(int matrix[M][M]) {
int max = matrix; // 初始化最大值为矩阵的第一个元素
int min = matrix; // 初始化最小值为矩阵的第一个元素
int maxRow = M / 2; // 最大值所在行的索引
int maxCol = M / 2; // 最大值所在列的索引
// 找出矩阵中的最大值和最小值
for (int i = 0; i < M; i++) {
for (int j = 0; j < M; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
maxRow = i;
maxCol = j;
}
if (matrix[i][j] < min) {
min = matrix[i][j];
}
}
}
// 将最大值放到矩阵的中心
matrix[M / 2][M / 2] = max;
// 将最小值放到矩阵的首地址中
matrix = min;
}
// 输出矩阵
void printMatrix(int matrix[M][M]) {
for (int i = 0; i < M; i++) {
for (int j = 0; j < M; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
int main() {
int matrix[M][M];
// 输入矩阵
printf("请输入一个 %d*%d 的矩阵:\n", M, M);
for (int i = 0; i < M; i++) {
for (int j = 0; j < M; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 处理矩阵
processMatrix(matrix);
// 输出矩阵
printf("处理后的矩阵为:\n");
printMatrix(matrix);
return 0;
}
```
这个程序首先定义了一个M*M的矩阵,然后通过输入函数将矩阵的元素值输入进去。接着,通过遍历矩阵找出最大值和最小值,并将最大值放到矩阵的中心位置,最小值放到矩阵的首地址中。最后,通过输出函数将处理后的矩阵打印出来。
阅读全文