C语言每日一练
2021年9月18日
题目描述
求一个矩阵主对角线及副对角线元素之和
分析
在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。
只有方阵(m=n)才有对角线,矩阵主对角线为右斜对角线(a11、a22…amn),副对角线为左斜对角线(a1n、a2(n-1)…am1),求这两条对角线上数字之和,只需将矩阵元素存入二维数组,求出两条数组特定位置的数字之和即可。
代码实现
#include <stdio.h>
int main()
{
int N = 0; //方阵阶数
int i = 0;
int j = 0;
int sum = 0; //总和
/* 获取矩阵阶数N */
printf("请输入矩阵(方阵)的阶数\n");
scanf("%d", &N);
int matrix[N][N];
/* 获取矩阵元素 */
for(i = 0; i< N; i++)
{
printf("请输入矩阵第%d行元素\n", i);
for(j = 0; j < N; j++)
{
scanf("%d", &matrix[i][j]);
}
}
/* 打印矩阵 */
printf("输入的矩阵为:\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
/* 求主副对角线数字之和 */
for(i = 0; i< N; i++)
{
for(j = 0; j < N; j++)
{
if(i == j || j == N - 1 - i)
sum += matrix[i][j];
}
}
printf("主对角线和副对角线的元素之和为%d\n", sum);
return 0;
}