3559 - 模拟2
现有一个n*n(n最大为10)的整数矩阵,n的值通过键盘输入确定,设计一个程序输入矩阵中的各元素值,计算矩阵中两条对角线上所有元素的和并输出。
Input
输入有多组样例。
首先输入一个n,
然后输入一个n*n的矩阵。
Output
输出和。
提示:当n为奇数时两条对角线存在一个交叉元素,在计算时需避免交叉元素的重复计算。
Examples
Input
2 1 2 3 4 3 1 2 3 1 2 3 1 2 3
Output
10 10
Solution C
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> int main() { // freopen("in","r",stdin); // freopen("out","w",stdout); int a[10][10],t,i,j,n; while(scanf("%d",&n)!=EOF) { t=0; for(i=0;i<n;i++) for(j=0;j<n;j++) { scanf("%d",&a[i][j]); } for(i=0;i<n;i++) t=t+a[i][i]+a[i][n-1-i]; if((n%2)!=0) t=t-a[(n-1)/2][(n-1)/2]; printf("%d\n",t); } return 0; }
Solution C++
#include <stdio.h> int main() { int a[11][11]; int i,j,n,sum; while(scanf("%d",&n)!=EOF) { sum=0; for(i=0;i<n;i++) for(j=0;j<n;j++) { scanf("%d",&a[i][j]); if(i==j||i+j==n-1) sum=sum+a[i][j]; } printf("%d\n",sum); } return 0; }