有师兄师姐能解读一下这个程序吗

有师兄师姐能解读一下这个程序吗

问题描述:

#include<stdio.h>
int main()
{
int n,a,b,i,j,x[16];
int c[16][100];
scanf("%d",&a);
for(i=0;i<a;i++){
scanf("%d",&b);
for(j=0;j<b;j++){
scanf("%d",&c[i][j]);
x[i]+=c[i][j];
}
}
for(i=0;i<a;i++){
if(i<1000 && j<1000 && x[i]%105==0){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}

如下:

#include<stdio.h>
int main()
{
    int n,a,b,i,j,x[16];
    int c[16][100];

    //下面这两层for循环的功能是:从键盘输入a行*b列数据,并放在二维数组c中,x记录每行元素的和

    scanf("%d",&a);   //从键盘输入一个数,并赋值给a
    for(i=0;i<a;i++){ //从键盘读取a个数
        scanf("%d",&b);  
        x[i] = 0; //这里需要加一句,对x[i]进行初始化
        for(j=0;j<b;j++){ //从键盘读取b个数 
            scanf("%d",&c[i][j]); //读取的数放在c数组中
            x[i]+=c[i][j]; //数组的每一行相加,但是这个地方是有错误的,x[i]没有初始化
        }
    }




    for(i=0;i<a;i++){
        if(i<1000 && j<1000 && x[i]%105==0){ //和是105的倍数,则显示YES,否则显示NO
            printf("YES\n");
        }else{
            printf("NO\n");
        }
    }
    return 0;
}