思路分析
以四行四列的矩阵为例。
案例代码如下
#include <stdio.h>
#define M 4
void main(){
int arr[M][M]={10,30,85,69,33,55,75,96,55,66,77,99,77,78,95,50};
int i,j,sum=0;
for(i=0;i<M;i++){
for(j=0;j<M;j++){
printf("%d\t",arr[i][j]);
}//打印输出矩阵
printf("\n");
}
for(i=0;i<M;i++){
sum+=arr[i][i];
}//矩阵主对角线上数字的和
printf("主对角线的数和为%d",sum);
sum=0;//重新对sum赋值为0
for(i=0;i<M;i++){
sum+=arr[i][M-1-i];
}//矩阵副对角线上数字的和
printf("\n");
printf("副对角线的数和为%d",sum);
}
代码运行结果如下
如果题意要求的是矩阵主副对角线上的数字之和,我们只需对上面的代码稍微修改即可。
代码如下
#include <stdio.h>
#define M 4
void main(){
int arr[M][M]={10,30,85,69,33,55,75,96,55,66,77,99,77,78,95,50};
int i,j,sum=0;
for(i=0;i<M;i++){
for(j=0;j<M;j++){
printf("%d\t",arr[i][j]);
}//打印输出矩阵
printf("\n");
}
for(i=0;i<M;i++){
sum+=arr[i][i]+arr[i][M-1-i];
}//矩阵主副对角线上数字之和
printf("主副对角线上的数字之和为%d",sum);
}
代码运行结果如下