7-3 矩阵对角线互换
7-3 矩阵对角线互换
目录
题目
本题目要求读入1个n×n的矩阵A,然后输出该矩阵正对角线与反对角线互换后的矩阵。具体过程如下图所示:
输入格式:
输入在一行中给出1个不超过1000的正整数n。
输出格式:
输出对角线互换后的矩阵。
输入样例:
3
16 5 7
30 2 3
-8 0 5
输出样例:
在这里给出相应的输出。例如:
7 5 16
30 2 3
5 0 -8
代码
思路
- 定义二维整型数组
int a[n][n]
用来存储矩阵 - 由于只对对角线上的元素操作,所以只循环遍历数组的对角线,用i作为对角线元素下标
for(int i = 0; i < n; i++)
- 定义临时变量
int temp = a[i][i]
存储对角线上的元素,然后将对角线上的元素与其对应位置的元素互换a[i][i] = a[i][n-i-1];
a[i][n-i-1] = temp;
- 最后双循环输出互换后的矩阵,注意输出的格式
代码
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int a[n][n];
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
scanf("%d", &a[i][j]);
}
}
for(int i = 0; i < n; i++)
{
int temp = a[i][i];
a[i][i] = a[i][n-i-1];
a[i][n-i-1] = temp;
}
for(int i = 0; i < n; i++)
{
int j = 0;
for(; j < n-1; j++)
{
printf("%d ", a[i][j]);
}
printf("%d", a[i][j]);
printf("\n");
}
return 0;
}