两个n阶方阵怎么编程

时间:2025-03-04 21:46:37 明星趣事

要编程处理两个n阶方阵,首先需要明确你想要实现的具体功能。以下是几种可能的场景和相应的代码示例:

交换两个n阶方阵中的最大值与最小值位置

```c

include

void swap(int *a, int *b) {

int temp = *a;

*a = *b;

*b = temp;

}

int main() {

int n, i, j, max1=0, max2=0, min1=0, min2=0;

int a;

printf("输入正整数n(1≤n≤6):");

scanf("%d", &n);

printf("输入n阶方阵:\n");

for (i = 0; i < n; i++) {

for (j = 0; j < n; j++) {

scanf("%d", &a[i][j]);

if (a[i][j] > a[max1][max2]) {

max1 = i;

max2 = j;

}

if (a[i][j] < a[min1][min2]) {

min1 = i;

min2 = j;

}

}

}

swap(&a[max1][max2], &a[min1][min2]);

printf("交换后的方阵:\n");

for (i = 0; i < n; i++) {

for (j = 0; j < n; j++) {

printf("%d ", a[i][j]);

}

printf("\n");

}

return 0;

}

```

生成一个n阶方阵

```c

include

define MAX_SIZE 10

void generateSquareMatrix(int matrix[MAX_SIZE][MAX_SIZE], int n) {

int num = 1;

int row = 0, col = n / 2;

for (int i = 0; i < n; i++) {

matrix[row][col] = num++;

if (row == n - 1) {

row = 0;

col++;

} else if (col == n) {

col = 0;

row++;

}

}

}

void printMatrix(int matrix[MAX_SIZE][MAX_SIZE], int n) {

for (int i = 0; i < n; i++) {

for (int j = 0; j < n; j++) {

printf("%d ", matrix[i][j]);

}

printf("\n");

}

}

int main() {

int n;

printf("输入正整数n(1≤n≤10):");

scanf("%d", &n);

int matrix[MAX_SIZE][MAX_SIZE];

generateSquareMatrix(matrix, n);

printf("生成的%d阶方阵:\n", n);

printMatrix(matrix, n);

return 0;

}

```

比较两个n阶方阵是否相等