用c语言将n*n的矩阵的主对角线元素的值与反向对角线的对应的位置上元素的值进行交换
时间: 2024-06-09 21:05:06 浏览: 142
对角线对应位置上元素中的值进行交换
假设矩阵用二维数组matrix表示,代码如下:
```c
#include<stdio.h>
int main(){
int n;
printf("请输入矩阵的维度n:");
scanf("%d", &n);
//定义并初始化矩阵
int matrix[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
matrix[i][j] = i*n+j+1;
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
//交换主对角线元素和反向对角线对应位置上的元素
for(int i=0; i<n; i++){
int tmp = matrix[i][i];
matrix[i][i] = matrix[i][n-i-1];
matrix[i][n-i-1] = tmp;
}
//输出交换后的矩阵
printf("交换后的矩阵:\n");
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
代码解析:
1. 首先通过scanf函数获取矩阵的维度n;
2. 定义并初始化n*n的矩阵,其中matrix[i][j]表示第i行第j列的元素,初始化为1~n^2的连续整数;
3. 遍历矩阵,输出原始矩阵;
4. 遍历矩阵,交换主对角线元素和反向对角线对应位置上的元素,其中主对角线元素为matrix[i][i],反向对角线对应位置上的元素为matrix[i][n-i-1];
5. 遍历矩阵,输出交换后的矩阵。
阅读全文