6个回答
-
static int a[8][8];定义为静态整形变量,因此数组的默认初始值为 0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j;
循环结束时,i 的值为 3,j 的值也是 3,for(i=0; i<8;i++)
x+=a[i][j] ;
所以这里 a[i][j] 从第三行的第三行开始(数组从第 0 列开始)并找到它们的总和。 应该是他们的价值观没有改变。 总和自然是 0
-
j 为 3for(i=0; i<3;i++)
for(j=0;j<3;j++) 每次从这里出来都是 3
a[i][j]=2*i+j;
-
这不是 0 的输出,但您需要实现什么?
-
j 是 3,这个程序实际上查看静态变量。
当数字或数组定义为静态整形变量时,它们的值将初始化为 0。
for(i=0;i<8;i++)
x+=a[i][j] ;
实际上 x=x+(a[0][3] +a[1][3] +a[2][3] +a[3] +a[3] +a[4][3] +a[5][3] +a[6][3] +a[7][3])
因为这些数组元素的初始值是 0
所以 x=0;
您可以使用以下语句查看它们的初始值。
#include
int main(){
int i,j,x=0;
static int a[8][8];
for(i=0;i<8;i++)
for(j=0;j<8;j++)
printf("%d ", a[i][j]);
printf("");
-
根据题目要求编写的程序如下(见图,图中重复的地方只需要写一次)。
-
scanf("%2d%5d",&a,&b);
2D 限制了最大只读 2 位数字,因此 A 值为 12,B 读取到非数字 C 的末尾,B 的值为 3456
其结果是 :12,3456
相关回答