linux c 二维数组定义,2.8.2 二维数组的定义和使用

2.8.2 二维数组的定义和使用

当数组元素具有两个下标时,该数组称为二维数组,同样地,n 维数组具有n 个下标。在实际问题中有很多量是二维的或多维的,多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量。二维数组定义的一般形式是:类型说明符数组名[常量表达式1][常量表达式2];

其中常量表达式1 表示***维下标的长度,常量表达式2 表示第二维下标的长度。

例如:int a[2][3];

该语句表示:

(1)定义了整型二维数组a,其数组元素类型是int。

(2)a 数组有两行三列,共6 个元素。

(3)该数组的行下标为0、1,列下标为0、1、2。数组元素分别是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2];

(4)定义了int型数组a,编译程序将为a 数组在内存中开辟6 个连续的存储单元,用来存放a 数组的6 个元素。存储方式为按行存放,即先依次存放第0 行的3 个元素,然后再接着存放第1行的3 个数组元素。数组名a 代表数组的首地址。

(5)在C 语言中,二维数组a 的每一行都可以看做是一维数组,a[0]表示第0 行的3 个元素构成的一维数组。

同一维数组一样,引用二维数组,也是引用它的数组元素。其表示形式为:数组名[行下标][列下标]

其中下标应为整型常量或整型表达式。

二维数组初始化也是在类型说明时给各下标变量赋予初值,二维数组可按行分段赋值,也可按行连续赋值。例如对数组a[4][3]的赋值如下。

(1)按行分段赋值可写为:int a[4][3]={ {80,75,92},{61,65,71},{59,63,70},{85,87,90} };

(2)按行连续赋值可写为:int a[4][3]={ 80,75,92,61,65,71,59,63,70,85,87,90};

这两种赋初值的结果是完全相同的。程序2.17 是二维数组定义与使用的简单例子。

【程序 2.17】一个学习小组共有5 人,每个人有三门课的考试成绩,求各科的平均成绩和全组成员的总平均成绩。他们的成绩与科目如下表所示:

84063197507f2cf701853cf63b517839.png

程序2.17:test17.c。#include

main( )

{

int i,j,s=0, average,v[3];

int a[5][3]={{80,75,92},{61,65,71},{59,63,70},

{85,87,90},{76,77,85}};/*定义二维数组*/

for(i=0;i<3;i++) /*用两层循环嵌套的方式访问数组的每个元素*/

{

for(j=0;j<5;j++)

ss=s+a[j][i]; /*变量s 的值为各科的总成绩*/

v[i]=s/5; /*各科的平均成绩*/

s=0;

}

average=(v[0]+v[1]+v[2])/3; /*总平均成绩*/

printf("Math:%d\nC language:%d\nFoxpro:%d\n",v[0],v[1],v[2]);

printf("total:%d\n", average);

}

程序运行结果如下(□表示空格):Math:72

C language:73

Foxpro:81

total:75

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值