矩阵
Description
已知一个n*n(n<=100)的矩阵,把矩阵的主、次两条对角线的每个元素值加上x(运算保证在int范围内),然后输出矩阵。
Input
输入第一行为两正整数n,x。
接下来的n行,每行n个整数,整数间用空格隔开,表示矩阵元素的值。
Output
共n行,每行n个整数。每个整数之间用一空格隔开
Sample Input
3 4
1 2 3
1 2 3
1 2 3
Sample Output
5 2 7
1 6 3
5 2 7
python解法
# 读取输入
n, x = map(int, input().split())
matrix = []
# 读取矩阵
for _ in range(n):
row = list(map(int, input().split()))
matrix.append(row)
# 修改矩阵
for i in range(n):
for j in range(n):
# 检查是否在主对角线或次对角线上
if i == j or i + j == n - 1:
matrix[i][j] += x
# 输出修改后的矩阵
for row in matrix:
print(' '.join(map(str, row)))
c++解法
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,x; // 定义两个整型变量n和x,分别用于存储矩阵的大小和要加到对角线上的值
cin>>n>>x;
// 定义一个二维数组a,其大小为n*n,用于存储矩阵的元素
int a[n][n];
// 读取矩阵的元素
for(int i = 0; i < n; i++){ // 遍历矩阵的每一行
for(int j = 0; j < n; j++){ // 遍历矩阵的每一列
cin>>a[i][j]; // 读取元素并存储到矩阵中
}
}
// 遍历矩阵,对主对角线和次对角线上的元素增加x
for(int i = 0; i < n; i++){
a[i][i] += x; // 主对角线
if (i != n-1-i) { // 避免中心元素被重复处理
a[i][n-1-i] += x; // 次对角线
}
}
// 输出修改后的矩阵
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
如果您有更优的解法,欢迎在评论区一起交流噢~
阅读剩余
作者:小鱼
链接:https://www.52stu.com/?p=221
文章版权归作者所有,未经允许请勿转载。
链接:https://www.52stu.com/?p=221
文章版权归作者所有,未经允许请勿转载。
THE END