若有以下程序main(){ int a[4][4]={{1 2 -3 -4} {0 -12 -13 14} {-21 23 0 -24} {-31 32 -33 0}}
程序
已帮助 人
若有以下程序main(){ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}}; int i,j,s=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { if(a[i][j]<0) continue; if(a[i][j]==0) break; s +=a[i][j]; } } printf("%d ",s);}程序执行后的输出结果是
-
参考答案:58在本题程序中,首先定义了一个4*4的二维数组a,并进行了初始化操作,然后定义了三个整型变量,i和j分别作为循环变量,而s作用一个记录和的变量被初始化为0。然后开始循环,第一层循环的循环变量i被初始化为0,循环结束条件是i<4,即循环执行四次,而第二层循环同样是4次,总循环此时为4´4=16次,如果逐次循环分析,工作量和花费时间太多,且一不小心容易出错,这种情况下,我们应该找出一个更简便的方法。从循环体中的if(a[i][j]<0) continue;我们可以知道,只要数组元素小于0,结束本次循环,即不参与求和运算,由if(a[i][j]==0) break;我们可以知道,只要数组元素等于0,结束本层循环,即同一行的数组元素都不用参加求和运算,从数组a的初始化情况我们可以看到,在第二行的第一个元素为0,即第二行都不参加求和运算,而第三行的第三个元素为0,即该行最后一个元素不参加求和运算。这样,参与求和运算的数组元素必须满足大于0,且其前面的该行元素无0出现。由此可以知道,变量s的最后结果应该为1+2+23+32=58。因此,程序最后的输出结果为58。
