C语言入门之数组(2),第1张

C语言入门之数组(2),第2张

二维数组

前面描述的数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中,很多量是二维或者多维的,所以C语言允许构造多维数组。多维数组元素有多个下标来标识它们在数组中的位置,所以也叫多下标变量。本节只介绍二维数组,多维数组可以由二维数组类推得到。二维数组类型描述二维数组类型描述的一般形式是:

类型说明符数组名[常量表达式1][常量表达式2]…;

其中,常数表达式1表示第一维下标的长度,常数表达式2表示第二维下标的长度。例如:

int a[3][4];

本文描述了一个三行四列的数组。数组名是一个,其下标变量是一个整数。该数组中有3×4个下标变量,即:

a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]

二维数组在概念上是二维的,也就是说它的下标在两个方向上变化,下标变量在数组中的位置也是在一个平面上,而不是像一维数组那样只是一个向量。然而,实际的硬件存储器是连续寻址的,也就是说,存储器单元在一维上线性排列。二维数组在一维内存中的存储方式有两种:一种是按行排列,即将一行按顺序放入第二行。另一种是按列排列,即一列结束后,按顺序放入第二列。在C语言中,二维数组是按行排列的。在图4.1中,行是按顺序存储的,首先存储行a[0],然后存储行a[1],最后存储行a[2]。每行有四个元素,也是依次存储的。因为阵列A被描述为源:www.examda.com

Int类型,占用两个字节的内存空,所以每个元素占用两个字节(图中每个网格一个字节)。资料来源:www.examda.com

二维数组元素的表示

二维数组的元素也称为双下标变量,其表达式为:数组名[下标][下标],其中下标应为整数常量或整数表达式。例如:a[3][4]表示三行四列的数组A的元素。下标和数组描述在形式上有些相似,但是它们有完全不同的含义。数组描述的方括号中给出了某一维的长度,即可以去掉目标值;数组元素中的下标是元素在数组中的位置标识。前者只能是常量,后者可以是常量、变量或表达式。

一个学习小组五个人,每个人有三次考试成绩。求全组平均分和各科总平均分。

课程名称数学C数据库张80 75 92王61 65 71李59 63 70赵85 87 90周76 77 85

可以设置一个二维数组a[5][3]来存储五个人三门课程的成绩。然后设置一维数组v[3]存储得到的所有科目的平均分,变量L设置为全组所有科目的总平均分。编程如下:

void main()
{
int i,j,s=0,l,v[3],a[5][3];
printf("输入分数\ n ");
for(I = 0;ifor(j = 0;j{ scanf("%d ",& a[j][I]);
s = s+a[j][I];}
v[I]= s/5;
s = 0;
}
l =(v[0]+v[1]+v[2])/3;
printf(" math:% d \ NC languag:% d \ nd base:% d \ n ",v[0],v[1],v[2]);
printf("total:%d\n ",l);
} for(I = 0;jfor(j = 0;j{ scanf("%d ",& a[j][I]);
s = s+a[j][I];}
v[I]= s/5;
s = 0;
}
l =(v[0]+v[1]+v[2])/3;

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C语言入门之数组(2)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情