关于c语言的,下面的程序运行结果为什么是零
#include<stdio.h>main(){inti,j,x=0;staticinta[8][8];for(i=0;i<3;i++)for(j=0;j<3;j++)a...
#include <stdio.h>
main( )
{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);
} 展开
main( )
{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);
} 展开
4个回答
展开全部
你的最后一个循环没对j进行循环,导致J的值一直是上一次的值 即J=3而你的数组里a[i][3]都是0,所以加和还是0
追问
for(j=0;j<3;j++)
j 不是最大为2吗
追答
j到2以后,++,变成3,判断发现不符合j<3跳出循环,如果j是2的话就不会跳出循环了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你计算的求和是针对第j=3列的阿,static的数组被初始化了全零,现在这一列的和也是0
追问
能详细点吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;i<8;i++)
x+=a[i][j];
在这个语句之前,需要重新给j赋值,否则相当于执行
for(i=0;i<8;i++)
x+=a[i][3];
x+=a[i][j];
在这个语句之前,需要重新给j赋值,否则相当于执行
for(i=0;i<8;i++)
x+=a[i][3];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询