编写程序,创建一个4x4的矩阵,矩阵的值为{{1,2,4,5},{6,7,8,9},{10,11,12,13},{14,15,16,17}},显示该矩阵。求该矩阵的外围元素之和、主对角线元素之和以及副对角线元素之和。
求三类元素的和,可以定义3 个不同的和变量,在遍历数组元素的循环中通过三次条件判分别进行三类元素的求和。
设行下标为i,列下标为j,考察三类元素的下标特征,外围元素要行下标i==0或者i==n-1(这里n为4)要么列下标j==0或者j==n-1;主对角线上的元行下标和列下标相等(i==j);副对角线上的元素行下标和列下标之和等于 n-1(i+j== n -l)。
#include<stdio.h>
int main()
{
int a = 0, b = 0, c = 0;
int i = 0, j = 0;
int arr[4][4] =
{
{1,2,4,5}, {6,7,8,9}, {10,11,12,13}, {14,15,16,17}
};
printf("矩阵:\n");
for (i = 0; i < 4; ++i)
{
for (j = 0; j < 4; ++j)
{
printf("%2d ", arr[i][j]);
if (i == 0 || i == 3 || j == 0 && i != 0 || j == 3 && i != 3)
a += arr[i][j];
if (i == j)
b += arr[i][j];
if (i + j == 3)
c += arr[i][j];
}
printf("\n");
}
printf("\n外围元素之和为:%d\n", a);
printf("主对角线元素之和为:%d\n", b);
printf("副对角线元素之和为:%d\n", c);
return 0;
}