谁能帮我解析下这道程序啊

来源:百度知道 编辑:UC知道 时间:2024/06/25 19:47:14
main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
int s=0,j=0,i=0;
while(i++<4)
{
if(i==2||i==4) cotinnue;
j=0;
do{s+=a[i][j];j++;}
while(j<4);
}
printf("%d\n",s);
}

请详细解析一下

你这个程序中有两个错误,
一是第第三行定义二维数组时中间应是逗号你打了个分号
二是第七行应该是continue
这个程序是将数组的第二行和第四行的数值进行累加
while(i++<4)
i是以0值进行判断的,当判断后i的值为1
所以if(i==2||i==4) cotinnue; 这句就不执行
接下来这句就将第二行的所有数值进行累加到S当中,注:此时是第一次的循环,i的值为1
j=0;
do{s+=a[i][j];j++;}
while(j<4);
累加完回到while(i++<4) 此时i=1,当判断完以后,因为是i++,所以i=2
执行这句if(i==2||i==4) cotinnue;

以下的以此类推,这个程度一共就循环两次,当i=1和i=3时,希望楼主可以看懂。

//这个程序就是实现4*4数组中的第二行和第四行的元素相加,即是{5,6,7,8}和{15,16,17,18}各个值相加,最后结果为92

int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
int s=0,j=0,i=0;
while(i++<4)
{
if(i==2||i==4) continue; //下标为2和4则继续循环,即把第1行和第3行跳过了。
j=0;
do{s+=a[i][j];j++;} //实现在i行所有元素值相加
while(j<4);
}
printf("%d\n",s); //打印结果

首先调用一个二维数组并向他赋值 然后设着整形变量 s j i 在i<4的情况下(i会自加1)如果i==2或者i==4 那么就不执行j=0 会跳出if 执行do while循环 do
s=s+a[i][j],j也会自加直到j<4 最后输出s的值···
可能解释的不太清楚 但这真的没法再说了···希望你能