c语言,哪位大神帮帮忙

qq_42161821 2018-05-08 11:06:20
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 \n",s); }
执行后输出结果是______
...全文
616 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
觅食穿梭 2018-05-10
  • 打赏
  • 举报
回复
实践出真理,不知道要自己敲一遍,自己去运行一下 答案为58 1+2+23+32=58
赵4老师 2018-05-08
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
白色一大坨 2018-05-08
  • 打赏
  • 举报
回复
58,这是在外面面试呢
自信男孩 2018-05-08
  • 打赏
  • 举报
回复
建议自己在电脑上运行一下。 从第二层循环体可以知道,s加的都是证书,因为负数直接continue;另外,遇到0,那么这一行后面的(0后面的)正数都不会加到s中。因此结果是: 1 + 2 + (第二行以0开头,因此直接跳过)23+32 = 58
dululululu 2018-05-08
  • 打赏
  • 举报
回复

这个问题是for语句与二维数组的结合,首先你需要了解二维数组与for语句的应用,同时,该题中包含continue与break语句,所以也要了解它们的用法
题中有两个for语句里面那条控制二维数组每一行,行内的运算,而外面的for语句是行运算结果的相加,首先执行里面的for语句得到结果{3,0,23,32}其中运算时碰到小于1的不相加,继续下一个值的计算,当计算遇到0时跳出当前循环执行下一个循环。第二次循环的结果是0
接着执行外部的循环也就是3+0+23+32,所以得到结果58
个人见解,还望接纳

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧