标题
数值求和
描述
输入整数N(N≤20),输入二维矩阵A[N] [N]各元素值,计算所有对角线元素的和,
每一元素只加一次,输出结算结果。
时间限制
1
内存限制
10000
类别
1
输入说明
输入整形数据N和N×N矩阵各元素值,如2和矩阵元素A={1,2,3,4}。
输出说明
格式输出:输出计算结果。
输入样例
2
1 2
3 4
输出样例
10
提示
采用重循环结构实现计算过程,所有对角线元素只加一次。
代码:(要注意题目中说,每个元素只加一次,所以当n为奇数时,要把矩阵中间的那个元素减一次,因为之前重复加了一次)
#include<stdio.h>
int main()
{
int n,i,j,sum1,sum2,sum;
scanf("%d\n",&n);
int a[n][n];
sum1 = sum2 = sum = 0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
if(n%2==0)
{
for(i=0;i<n;i++)
{
sum1 = sum1 + a[i][i];
}
for(i=0,j=n-1;i<n,j>=0;i++,j--)
{
sum2 = sum2 + a[i][j];
}
sum = sum1 + sum2;
}
else
{
for(i=0;i<n;i++)
{
sum1 = sum1 + a[i][i];
}
for(i=0,j=n-1;i<n,j>=0;i++,j--)
{
sum2 = sum2 + a[i][j];
}
sum = sum1 + sum2;
sum = sum - a[n/2][n/2];
}
printf("%d", sum);
}