2503 - 数组练习-5

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

首先从键盘输入一个正整数n(代表一个方阵的阶数,即一个n行n列的二维数组),接着输入n*n个整数(代表数组元素)。然后计算并输出这个方阵的两条对角线元素之和。

题目输入

3 6 15 1 5 18 17 4 18 2

题目输出

31

输入/输出样例

输入格式

4 19 10 6 4 4 7 1 15 16 7 4 13 7 2 14 15

输出格式

64

C语言解答

#include<stdio.h>
int main()
{
	int a[100][100];
	int n, i, j, b, k=0, f=0, sum;
	scanf("%d", &n);
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
		{
			scanf("%d", &a[i][j]);

		}
	}
	
	for(i=0; i<n; i++)
	{
		k += a[i][i];
		
	}

	for(i=0,j=n-1; i<n && j>=0; i++, j--)
	{
		f += a[i][j]; 

	}
	b = n/2;
	sum = k + f;
	if(n %2 != 0)
	{
		sum = sum - a[b][b];
	}
	printf("%d", sum);
	return 0;

}

C++解答

#include<stdio.h>
int main()
{
	int a[100][100];
	int n, i, j, b, k=0, f=0, sum;
	scanf("%d", &n);
	for(i=0; i<n; i++)
	{
		for(j=0; j<n; j++)
		{
			scanf("%d", &a[i][j]);

		}
	}
	
	for(i=0; i<n; i++)
	{
		k += a[i][i];
		
	}

	for(i=0,j=n-1; i<n && j>=0; i++, j--)
	{
		f += a[i][j]; 

	}
	b = n/2;
	sum = k + f;
	if(n %2 != 0)
	{
		sum = sum - a[b][b];
	}
	printf("%d", sum);
	return 0;

}