求一个n×n的整形矩阵从左上角至右下角的对角线元素之和。 输入描述 第一行有一个正整数n,保证n不超过10。共有n行,每行有n个用空格隔开的整数, 输出n×n矩阵的左上角至右下角的对角线元素之和。

#include<stdio.h>
int main()
{ int n,i,j;
int sum=0;
int a[10][10];
scanf("%d",&n);
0<n&&n<=10;
printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d ",&a[i][j]);
printf("\n");
sum+=a[i][j];
}
}
printf("%d\n",sum);
return 0;
}

i= j就是对角线的元素,累加之前要加入if语句判断i==j.

代码修改如下,(修改的地方有注释)

#include<stdio.h>
int main()
{ 
    int n,i,j;
    int sum=0;
    int a[10][10];
    scanf("%d",&n);
    //下面这两句没用如果要判断n是否是0-10之间,用 if(0<n&&n<=10) {  },如下所示
    //0<n&&n<=10;
    //printf("\n");
    if( 0<n && n<=10 ) 
    {
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
                scanf("%d",&a[i][j]);
                //printf("\n");
                if(i==j) //这里加个条件,i==j时是对角线元素
                    sum+=a[i][j];
            }
        }
        printf("%d\n",sum);
    }
    
    return 0;
}