【題目描述】
已知一個(gè)n×n(2≤n≤20)n×n(2≤n≤20)的矩陣(方陣),把矩陣二條對(duì)角線上的元素值加上1010,然后輸出這個(gè)新矩陣。
【輸入】
第一行為nn;
下面為一個(gè)n×nn×n,矩陣中各正整數(shù)小于100100。
【輸出】
輸出新的矩陣。共nn行,每行nn數(shù),各數(shù)之間用一個(gè)空格隔開。
【輸入樣例】
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
解法一:
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
int a[n][n];
for(int i = 0;i < n;i ++){
for(int j = 0;j < n;j ++){
cin >> a[i][j];
}
}
for(int i = 0;i < n;i ++){
for(int j = 0;j < n;j ++){
if(j == i || j + i == n - 1){
a[i][j] += 10;
}
}
}
for(int i = 0;i < n;i ++){
for(int j = 0;j < n;j ++){
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
解法二:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-611669.html
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, a[30][30];
cin >> n;
for(int i = 1; i <= n; ++i)//輸入矩陣
for(int j = 1; j <= n; ++j)
cin >> a[i][j];
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
{//左上右下對(duì)角線:橫縱坐標(biāo)相同 右上左下對(duì)角線:橫縱坐標(biāo)相加和為n+1
if(i == j || i+j == n+1)
a[i][j] += 10; //對(duì)角線數(shù)字加10
}
for(int i = 1; i <= n; ++i)//輸出矩陣
{
for(int j = 1; j <= n; ++j)
cout << a[i][j] << ' ';
cout << endl;
}
return 0;
}
解法三:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-611669.html
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t, n, a[30][30] = {}, i, j;
cin >> n;
for(i = j = 1; i <= n && j <= n; i++, j++)//左上右下對(duì)角線
a[i][j] += 10;
for(i = 1, j = n; i <= n && j >= 1; i++, j--)//右上左下對(duì)角線
{
if(a[i][j] == 0)//防止重復(fù)賦值
a[i][j] += 10;
}
for(int i = 1; i <= n; ++i)//輸入矩陣
for(int j = 1; j <= n; ++j)
{
cin >> t;
a[i][j] += t;
}
for(int i = 1; i <= n; ++i)//輸出矩陣
{
for(int j = 1; j <= n; ++j)
cout << a[i][j] << ' ';
cout << endl;
}
return 0;
}
到了這里,關(guān)于信息學(xué)奧賽一本通2041:【例5.9】新矩陣的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!