运行后结果是什么

年少癫狂 2012-03-12 11:21:07
int i,j,x=0;
static int a[8][8];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
for(i=0;i<8;i++)
x+=a[i][j];
printf("%d",x);
运行后结果是什么?
...全文
95 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
李察德-泰森 2012-03-13
  • 打赏
  • 举报
回复
试解答一下:
static有初始化数组值的作用,从 a[0][0]~a[7][7] 的值全部被初始化为0。
在前一个嵌套循环中,只对 a[0][0]~a[2][2] 赋值。赋值完成后,j 的值为3,
在最后给 x 计算值时,取到的值都是 0 了,所以结果为 0
nice_cxf 2012-03-13
  • 打赏
  • 举报
回复
如果你搞不懂为啥是0就直接问
不过最好你自己单步一下
月中蓝 2012-03-13
  • 打赏
  • 举报
回复
试了下,结果是0,楼主想知道什么
qixing1115 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 woshishen__74 的回复:]
int i,j,x=0;
static int a[8][8];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
for(i=0;i<8;i++)
x+=a[i][j];
printf("%d",x);
运行后结果是什么?
[/Quote]
要知道结果自己运行,你的疑问是的什么?
lz3771 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 selecthis 的回复:]

试解答一下:
static有初始化数组值的作用,从 a[0][0]~a[7][7] 的值全部被初始化为0。
在前一个嵌套循环中,只对 a[0][0]~a[2][2] 赋值。赋值完成后,j 的值为3,
在最后给 x 计算值时,取到的值都是 0 了,所以结果为 0
[/Quote]
正解
northcan 2012-03-13
  • 打赏
  • 举报
回复
自己Debug一下。
sundayX 2012-03-13
  • 打赏
  • 举报
回复
int i,j,x=0;
int a[8][8];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
for(i=0;i<8;i++)
x+=a[i][j];
printf("%d",x);
结果又是怎么样呢?
sundayX 2012-03-13
  • 打赏
  • 举报
回复
up,最后一个循环是求矩阵中第j列的值,但这一列的值在前面的循环中并未赋值。
mko_y 2012-03-13
  • 打赏
  • 举报
回复
嗯 赋值 只有 a[0][0] a[0][1] a[0][2]
a[1][0] a[1][1] a[1][2]
a[2][0] a[2][1] a[2][2]

其他值仍旧为0

你最后相加的时候, J==3;
是 a[0][3]--a[8][3]

结果为0
ProgrammingRing 2012-03-12
  • 打赏
  • 举报
回复
编译器里跑一下不就知道了?
猪头小哥 2012-03-12
  • 打赏
  • 举报
回复
你自己不会运行么?

69,382

社区成员

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

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