C语言矩阵操作:将最大值置于中心,最小值置于边界
#include <stdio.h>
int main() { int n, max = -1001, min = 1001, sum = 0; scanf("%d", &n); int matrix[n][n]; // 读入矩阵并计算最大值、最小值、总和 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", &matrix[i][j]); if (matrix[i][j] > max) { max = matrix[i][j]; } if (matrix[i][j] < min) { min = matrix[i][j]; } sum += matrix[i][j]; } } // 将最小值放在边界上 for (int i = 0; i < n; i++) { matrix[0][i] = min; matrix[n-1][i] = min; matrix[i][0] = min; matrix[i][n-1] = min; } // 将最大值放在中心 matrix[n/2][n/2] = max; // 将其余位置换成总和 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (matrix[i][j] != max && matrix[i][j] != min) { matrix[i][j] = sum; } } } // 输出结果 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%5d", matrix[i][j]); } printf("\n"); } return 0; }
原文地址: https://www.cveoy.top/t/topic/otO7 著作权归作者所有。请勿转载和采集!