- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8 二维数组的使用
授课:朱怀忠 zhuhuaizhong@126.com
Copyright © HEBUT. All rights reserved
C++ Programming
2010 河北工业大学计算机基础课程系列
前言
上次课程内容回顾
一维数组的定义
一维数组的应用
通过循环来依次访问数组元素
循环控制变量既控制循环次数,也作为数组元素的下标
如何查找、排序、移动数组元素
前言
作业中出现的比较多的问题
除法直接写横线,
判断等于不等用一个=
乘法不写*
x1中的1写成下标样式
中文变量名
书写太乱
前言
课堂测试
数组 a[2][3][4] 共有多少个元素?
int a[4]={2,3,1}; 则 a[3]=?
将序列 8 5 1 4 7 3 2 6 9 10 每两个数互换,形成 5 8 4 1 3 7 ...的样式
让用户输入10个字符,并用字符数组存储,然后编写程序判断这些字符中字母A-z、数字0-9以及其他字符的个数
输入十个字符(可以是字母、数字或者特殊符号),按照其ascii值从大到小输出(要求使用选择法或者冒泡法)。
前言
本次课程内容
二维数组的定义和应用
概念
二维数组
二维数组拥有两个下标,用来表示一个平面的所有数据
比如excel中的一个工作表或者数学上的矩阵
第一维表示行、第二维表示列
概念
二维数组的定义
定义: 数据类型 数组名[常量表达式1][常量表达式2] ,如 int a[2][3]
常量表达是1是第一维,代表元素的行数,表达式2代表列数,所以 a[2][3]是一个2行3列的矩阵,共有 2*3=6 个元素
c++把二维数组看作是一种特殊的一维数组,这个一维数组中的元素又是一个一维数组。把a看作是一个一维数组,它有2个元素:a[0]、a[1],而它们又是一个包含3个元素的一维数组。a[0]、a[1]可看作是两个一维数组的数组名。
注意:上述定义不能写成 int a[2,3]; 也不能写成 a(2,3)
概念
二维数组的存储结构
二维数组的元素是依次存放在内存中的,先从第1行存起,第1行第1列,第1行第2列。。。然后第2行第1列,第2行第2列。。。。依此类推
如 int b[2][6];
内存中
二维数组
二维数组元素的访问
同一维数组一样,不能直接通过名字来访问整个数组
int a[2][3];int b[2][3];a=b; 这是错误的
正确的引用方式: 数组名[行下标][列下标] ,比如 int a[2][3]; a[0][1]=2; 代表将第1行第二列的元素的值置为2.
c++不对数组边界进行检查,下标值超界时系统不指出其错误,需程序员自己小心.
二维数组
二维数组元素的输入输出
对于二维表中的数据,需要行和列都被指定才能定位到它,c++通常用嵌套循环结构来完成对二维数组每个元素的操作,内外层的循环控制变量作为二维数组的两个下标,至于每个控制变量是作为行坐标还是列坐标,则依赖于你访问所有元素的顺序,即,是按行访问,还是按列访问。
如int a[2][3]; 下面提供了常见的几种访问方式
按行读入和输出数据:
for(int i=0;i=1;i++)
{
for(int j=0;j=2;j++)
{
cout请输入a[i][j];
cina[i][j];
}
}
按列依次输出每个元素:
for(int i=0;i=2;i++)
{
for(int j=0;j=1;j++)
{
couta[j][i] ;
}
coutendl;
}
for(int i=0;i=1;i++)
{
for(int j=0;j=2;j++)
{
couta[i][j] ;
}
coutendl;
}
注意不一定非得i代表行,j代表列
for(int j=0;j=1;j++)
{
for(int i=0;i=2;i++)
{
couta[j][i] ;
}
coutendl;
}
二维数组
二维数组的初始化
初始化指对数组元素赋值的过程,可以有下面几种方式
手工对某个元素赋值,适用于元素较少的情况
int a[2][3]; a[0,0]=1;a[0,1]=2;a[1,2]=3; 没有赋值的元素会是随机值,比如 a[1][0],编译时会提示 warning 。
定义时就赋值,使用花括号嵌套,内层花括号用,分割
int a[2][3]={{1,2,3},{4,5,6}};
如果定义时就对全部元素赋值,可以省略第一维大小,上面例子等同于
int a[][3]={{1,2,3},{4,5,6}};
也可以不使用花括号嵌套,依次按照存储顺序将值排列
int a[2][3]={1,2,3,4,5,6}
原创力文档


文档评论(0)