对输入的一个N*N的方阵,求其两条对角线上的元素之和及非零元素的数量。
输入格式:
第一行输入一个不超过20的正整数N,
在接下来的N行中,依次输入方阵的每一行的N个元素,方阵元素为绝对值不超过1000的整数,中间以空格间隔。
输出格式:
在一行中以sum = < s >, count =< c > 的格式输出方阵两对角线上的元素之和以及非零元素的数量,其中< s>、, < c >分别表示元素之和、非零元素数量,输出时以实际数量替换。
输入样例1:
4
1 2 3 4
1 2 3 4
0 1 2 3
0 1 2 3
输出样例1:
sum = 16, count = 7.
输入样例2:
5
1 2 3 2 1
1 2 3 2 1
1 2 3 2 1
1 2 3 2 1
1 2 3 2 1
输出样例:
sum = 15, count = 9.
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main() {
int num,a[20][20],cout=0,sum=0,i,j;
scanf("%d",&num);
for(i=0;i<num;i++)
for(j=0;j<num;j++){
scanf("%d",&a[i][j]);//对数组进行输入
if(i==j||i+j==num-1)//累加的条件
{
if(a[i][j]!=0)
cout+=1;//记录非零的数字
sum+=a[i][j];}}//累加
printf("sum = %d, count = %d.\n",sum,cout);
return 0;
}