文章目录
- 1.题目
- 2.源码
- 3.图文题解
- 4.当分不清楚i与j的时候,就可以用代码验证的方法进行下标的区分
1.题目
【题目描述】
已知一个n×n(2≤n≤20)的矩阵(方阵),把矩阵二条对角线上的元素值加上10,然后输出这个新矩阵。
【输入】
第一行为n;
下面为一个n×n,矩阵中各正整数小于100。
【输出】
输出新的矩阵。共n行,每行n数,各数之间用一个空格隔开。
【输入样例】
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
2.源码
#include<iostream>
using namespace std;
int main()
{int n,i,j;int a[150][150];cin>>n; for(i=0;i<n;i++){for(j=0;j<n;j++){cin>>a[i][j]; }} for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j||i+j==n-1) {a[i][j]+=10;} cout<<a[i][j]<<" "; }cout<<endl;} return 0;
}
3.图文题解
i是行数,j是列数。例如,0 1是第1行第2个。我们可以发现下标都要减1
我们与输出样例中的矩阵进行比较:
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
我们发现了已经改变的元素分别为:23、65、70、106、30、37
它们的值分别对应13、55、60、96、20、27
接下来,我们去表格中找到相应的位置:
我们通过位置可以发现i与j的规律:i = j 或 i + j = n-1
从输入样例中得出 n = 5
所以,i = j 或 i + j = n - 1 相当于 i = j 或 i + j = 4
从规律方面来看,我们只要i与j相等,或者i加j的和为4,就可以了。所以,我们在输出矩阵之前,只要把满足条件的元素加10,就可以解题了。
4.当分不清楚i与j的时候,就可以用代码验证的方法进行下标的区分
#include<iostream>
using namespace std;
int main()
{int n,i,j;int a[150][150];cin>>n; for(i=0;i<n;i++){for(j=0;j<n;j++){cin>>a[i][j]; }} for(i=0;i<n;i++){for(j=0;j<n;j++){cout<<a[i][j]<<" "; cout<<"("<<i<<","<<j<<")"<<" ";}cout<<endl;} return 0;
}