【题目描述】
已知一个n×n(2≤n≤20)的矩阵(方阵),把矩阵二条对角线上的元素值加上10,然后输出这个新矩阵。
【输入样例】
5
13 66 53 89 55
11 72 61 62 46
90 10 38 10 55
95 20 43 27 19
60 12 66 16 96
【输出样例】
23 66 53 89 65
11 82 61 72 46
90 10 48 10 55
95 30 43 37 19
70 12 66 16 106
1、先按照示例进行输入
2、模拟左对角线全体加10
3、模拟右对角线全体加10
4、如果输入矩阵n为基数,最中间的元素会被加两次,所以要减下去一次,n为偶数则不考虑
5、输出结果
#include <iostream>
using namespace std;
const int N = 1e3 + 10;
int a[N][N];
int main()
{
int n; cin >> n;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
cin >> a[i][j];
}
}
//模拟左对角线
int x1 = 1, y1 = 1;
while (x1<=n&&y1<=n) a[x1++][y1++] += 10;
//模拟右对角线
int x2 = 1, y2 = n;
while (x2<=n&&y2>=1) a[x2++][y2--] += 10;
//特派(n为基数)
if (n % 2 == 1) a[n / 2 + 1][n / 2 + 1] -= 10;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
cout<<a[i][j]<<" ";
}
cout << endl;
}
return 0;
}