有师兄师姐能解读一下这个程序吗
问题描述:
#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;
}