想问一下我这个代码哪里有问题,如下

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

}
printf("%d",sum);
return 0;

}

问题是求:33矩阵求主对角线之和,但是为什么,我的输出结果正确,但却不是33矩阵,如下图:

img

题主的写法,9个元素一次性输入:

img

输入输出有问题
参考如下
#include<stdio.h>
#include<math.h>
#include<string.h>
int main(void)
{
int a[101][101],m,n,i,j;
scanf("%d%d",&m,&n);
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}