如果想要求一个矩阵的对角线之和,那么首先我们需要一个矩阵,那么使用什么样的句矩阵呢?可以使用4*4的二维数组,我这里用的是5*5的二维数组。
最外面的一层用来计数,里面的是输入的数据。接下来,开始代码的正式实现。
首先,是将想要的数据填入数组,二维数组的输入需要for循坏的嵌套,如下图:
由于外层数只用于计数,所以行和列都需要从第二行或列开始,也就是下标为一开始,如果想要打印出输入的数,可以使用下面的语句:
之后,最关键的也就是最难的来了,如何实现主对角线和辅助对角线之和?这就需要用到最外层数组了,通过第一张图观察可以知道主对角线数的下标相同,而副对角线的下标之和为5,所以可以实现:
最后再输出结果,
最后的效果如下:
完整的代码:
#include<stdio.h>
int main()
{
int arr[5][5] = {0};
int i, j;
printf("请输入:\n");
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
scanf("%d", &arr[i][j]);
}
}
int zhu = 0, fu = 0;
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
if (i == j)
{
zhu += arr[i][j];
}
if (i + j == 5)
{
fu += arr[i][j];
}
}
}
printf("主对角线之和=%d\n", zhu);
printf("辅对角线之后=%d\n", fu);
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}