c语言 求4*4矩阵主对角线元素之和,副对角线元素之和

如题所述

【输入】

输入一个4×4的整数矩阵。

分4行,每行4个整数,整数之间以空格间隔。

【输出】

分行输出矩阵的外围元素之和,主对角线元素之和以及副对角线元素之和。

【输入示例】

1 2 4 5

6 7 8 9

0 1 2 3

4 5 6 7

【输出示例】

52

17

18

【提示】

求三类元素的和,可以定义三个不同的和变量,在遍历数组元素的循环中通过三次条件判断分别进行三类元素的求和。设行下标为i,列下标为j,考察三类元素的下标特征,外围元素要么行下标i == 0或者i == n - 1(这里n为4),要么列下标j ==0或者j == n - 1;主对角线上的元素行下标和列下标相等(i == j);副对角线上的元素行下标和列下标之和等于n - 1(i + j == n - 1)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-30
#include <stdio.h>

int main() {
int a[4][4],i,j,msum = 0,ssum = 0;
for(i = 0; i < 4; ++i) {
for(j = 0; j < 4; ++j) {
printf("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
printf("矩阵元素表:\n");
for(i = 0; i < 4; ++i) {
for(j = 0; j < 4; ++j) {
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i = 0; i < 4; ++i) {
msum += a[i][i];
ssum += a[i][3 - i];
}
printf("主对角线的和是:%d\n斜对角线的和是:%d\n\n",msum,ssum);
return 0;
}本回答被提问者采纳
第2个回答  推荐于2018-02-27
核心代码:
int i,j,sum=0,arr[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i+j==3 || i==j)
sum+=arr[i][j];
具体的代码实现由你自己完成本回答被网友采纳