前言
坚持。
题干

输入说明
输入第一行给出正整数n(2<n≤50);随后n行,每行给出n个整数,其间以空格分隔。
输出说明
在第一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。随后n行,每行给出n个整数,其间以空格分隔,为三对角矩阵的元素。
测试样例:
输入样例
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
输出样例
35
2 3 0 0
5 6 1 0
0 1 8 1
0 0 1 1
解析
重要因素
- 三对角要求 利用 横纵坐标的关系 来解决
- 计算sum时,正向思维
解答
#include<stdio.h>
int main(){
int n,i,j,a[50][50],sum=0;
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
if((i+j)!=n-1 && i!=n-1 && j!=n-1){ // core
sum=sum+a[i][j];
}
}
}
printf("%d\n",sum);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(j<i-1||j>i+1) // core
a[i][j]=0;
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
拓展
矩阵中的学问: 横纵坐标的关系!
矩阵转置:定义横纵都大于最大要求的二维数组,通过下标交换实现矩阵转置
本文介绍了一种针对n阶方阵的处理方法,主要任务是计算除副对角线、最后一列和最后一行以外的所有元素之和,并构造新的三对角矩阵。通过遍历矩阵并进行条件判断,实现了目标元素的累加和矩阵的重塑。提供的C语言代码示例展示了这一过程,突出了横纵坐标在矩阵操作中的关键作用。
1110

被折叠的 条评论
为什么被折叠?



