关于二维数组的c语言题目


#include "stdio.h"

main()
{
int i,b;
static int a[3][3]={1,2,3,4,5,6,7,8,9};
for (b=i=0;i<3;i+=1)
b+=a[i][i];
printf ("%4d\n",b);
}

题目本身答案是15,但是我不知道这过程怎么来的,怎沪畅高堆薨瞪胳缺供画么算的。特别是那个二维数组我根本不晓得从哪下手。没分了,忘高手给个解答!

二维数组是可以这样的{ {1 2 3}
{4 5 6}
{7 8 9}
}
即a[0][0] = 1沪畅高堆薨瞪胳缺供画
a[1][1] = 5
a[2][2] = 9

由b+=a[i][i]可知相加而得 15
1,2,3
4,5,6
7,8,9

对角线加起来就是15
这个不过就是使得
b=a[0][0]+a[1][1]+a[2][2]
看这个数组分配
static int a[3][3]={1,2,3,4,5,6,7,8,9};
a[0][]={1,2,3}
a[1][]={4,5,6}
a[2][]={7,8,9}
a[0][0]=1
a[1][1]=5
a[2][2]=9
就是15
a[0][]={1,2,3}
a[1][]={4,5,6}
a[2][]={7,8,9}

b=a[0][0]+a[1][1]+a[2][2]
对角线加起来就是15
二维数组定义的一般形式是:
类型说明符 数组名[常量表达式1][常量表达式2]
其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度
int a[3][4];

如果 int a[M][N] 是一个已赋值的数组,则可以用以下的语句段以矩阵形式打印这个数组:
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%6d",a[i][j]);
printf("\n");
}


Copyright © 2009-2011 All Rights Reserved.