二维数组

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

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

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

int a[3][4];

说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有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数组三行四列的元素。下标变量和数组说明在形式中有些相似,但这两者具有完全不同的含义。 数组说明的方括号中给出的是某一维的长度,即可取下标的值; 而数组元素中的下标是该元素在数组中的位置标识。前者只能是常量, 后者可以是常量,变量或表达式。

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

课程 成绩姓名 Math C DBASE

张      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("input score\n");

for(i=0;i<3;i++){

for(j=0;j<5;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\ndbase:%d\n",v[0],v[1],v[2]);

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

} for(i=0;j<3;i++)

for(j=0;j<5;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;

C语言入门之数组(2).doc

下载Word文档到电脑,方便收藏和打印[全文共1339字]

编辑推荐:

下载Word文档

c语言入门数组,C语言入门之数组(2)相关推荐

  1. C语言 指针数组 - C语言零基础入门教程

    目录 一.简介 1.数组 2.指针 3.指针和数组区别 二.指针数组 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.简介 1.数组 ...

  2. 一维数组c语言,c语言一维数组_C语言一维数组入门教程

    摘要 腾兴网为您分享:C语言一维数组入门教程,优衣库,小米手环,小米钱包,小度等软件知识,以及胎教宝典,一级建造师题库软件,康佳渠道,刷点卷,一加系统,音乐节拍器,liveuc视频会议,辽宁省政务服务 ...

  3. C语言 使用指针遍历数组 - C语言零基础入门教程

    目录 一.使用数组下标遍历数组 1.计算数组元素个数 2.通过下标遍历数组 二.使用数组首地址偏移遍历数组 三.使用指针遍历数组 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目 ...

  4. C语言入门经典——基础知识(指针 数组 多维数组)

    关于指针与数组的总结如下 语句的解释与说明 int number = 5; ==>>这条语句会分配一块内存来存储一个整数,使用number名称可以访问这个整数. Int *pnumber ...

  5. 数组02 - 零基础入门学习C语言24

    第六章:数组02 让编程改变世界 Change the world by program 一维数组元素的引用 [codesyntax lang="c"] #include < ...

  6. C语言基础入门48篇_30_二维数组的定义与使用(二维数组的定义:type 数组名[行][列]、二维数组的初始化、二维数组的引用)

    1. 二维数组的定义 type 数组名[行][列] 2. 二维数组的初始化 2.1 全部初始化为0 char chAry[2][3] = { 0 }; 实例: #include <stdio.h ...

  7. 《明解C语言 入门篇》第5章 数组 练习题解答

    练习5-1 数组的赋值 练习5-2 数组的赋值 练习5-3 数组的初始化 练习5-4 数组的倒序复制 练习5-5 数组元素倒序排列 练习5-6 赋值表达式的判断 练习5-7 对象式宏的应用 练习5-8 ...

  8. C语言 fclose 函数 - C语言零基础入门教程

    目录 一.fclose 函数简介 二.fclose 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fclose 函数简介 ...

  9. C语言 fopen 函数 - C语言零基础入门教程

    目录 一.fopen 函数简介 二.fopen 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fopen 函数简介 C 语 ...

最新文章

  1. 《大话数据结构》第9章 排序 9.3 冒泡排序(下)
  2. matlab中表示拉普拉斯分布_深度优化局部拉普拉斯金字塔滤波器。
  3. 【Elasticsearch】es 定期删除 已经删除的数据 物理删除 不是等待段合并
  4. HTTP 请求消息头部实例:
  5. Google地图接口API之Google地图 API 参考手册(七)
  6. js定义对象的多个属性值
  7. 【室内定位】采用TOA借助多个基站与终端之间距离进行目标定位matlab源码
  8. 更换苹果推送服务证书Apple Push Services Certificate
  9. 今天我又发现一个宝藏应用:时光序-个人日程管理应用,记录生活的方方面面!
  10. 六级考研单词之路-十六
  11. Spring Boot配置Tomcat容器、Jetty容器、Undertow容器
  12. 利用ArcGIS创建注记层制作方法及注意事项
  13. [P1459 [USACO2.1]三值的排序 Sorting a Three-Valued Sequence]
  14. 华为服务器2288h v5安装系统,华为2288装系统
  15. usermod--修改用户账号信息命令
  16. 分布式定时任务(XXL_JOB)
  17. VSCode中配置Rust时报错:error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  18. idea 全局查找快捷键
  19. Given-When-Then表达方式应用
  20. C# 实现多张JPG 转换为GIF格式

热门文章

  1. AgileConfig - RESTful API 介绍
  2. AgileConfig-如何使用AgileConfig.Client读取配置
  3. 一个基于.Net 5开发的轻量级Quartz配置中心 - QuartzCore.Blazor
  4. C# WPF开源控件库:MahApps.Metro
  5. WPF 使用 Expression Design 画图导出及使用 Path 画图
  6. IdentityServer4系列 | 快速搭建简易项目
  7. SQL Server 分页+json分享
  8. 从对我的质疑说起,谈谈Linux下的文件删除
  9. C# 代码中调用 Javascript 代码段以提高应用程序的配置灵活性(使用 Javascript .NET 与 Jint)...
  10. 【.NETCore 3】Ids4 ║ 多项目集成统一认证中心的思考