C语言输入正整数 n(n≤6)和 n 阶方阵 A,交换方阵 A 中的最大 值与最小值位置。假定方阵 A 中的最大值与最小值都唯一。
时间: 2023-12-14 17:37:41 浏览: 80
从输入的一批正整数中求出最大值、最小值和平均值,输入0结束数据的输入
以下是一个可能的实现方法:
```c
#include <stdio.h>
int main() {
int n;
printf("请输入矩阵的阶数:");
scanf("%d", &n);
int A[n][n];
printf("请输入矩阵元素:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &A[i][j]);
}
}
int max_val = A[0][0], min_val = A[0][0];
int max_i = 0, max_j = 0, min_i = 0, min_j = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (A[i][j] > max_val) {
max_val = A[i][j];
max_i = i;
max_j = j;
}
if (A[i][j] < min_val) {
min_val = A[i][j];
min_i = i;
min_j = j;
}
}
}
// 交换最大值和最小值
int temp = A[max_i][max_j];
A[max_i][max_j] = A[min_i][min_j];
A[min_i][min_j] = temp;
printf("交换后的矩阵为:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", A[i][j]);
}
printf("\n");
}
return 0;
}
```
首先读入矩阵的阶数和元素,然后遍历整个矩阵,找到最大值和最小值的位置。接着交换两个位置的元素,最后输出交换后的矩阵。
阅读全文