数组指针PPT学习教案_第1页
数组指针PPT学习教案_第2页
数组指针PPT学习教案_第3页
数组指针PPT学习教案_第4页
数组指针PPT学习教案_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1数组指针数组指针第四章第四章 数组、指针数组、指针第1页/共41页4.1 4.1 数组的分类数组的分类第2页/共41页第3页/共41页第4页/共41页数组元素数组元素在内存中顺次存放,它们的地址是连续的。在内存中顺次存放,它们的地址是连续的。例如:具有例如:具有10个元素的数组 a,在内存中的存放次序如下:数组名是数组首元素的内存地址。数组名是数组首元素的内存地址。数组名是一个常量,不能被赋值。数组名是一个常量,不能被赋值。a0 a1 a2 a3 a4 a5 a6 a7 a8a9a第5页/共41页 在声明数组时对数组元素赋以初值。在声明数组时对数组元素赋以初值。 例如例如int a10

2、=0,1,2,3,4,5,6,7,8,9;int a10=0,1,2,3,4,5,6,7,8,9; 可以只给一部分元素赋初值,其它自动赋默认值。可以只给一部分元素赋初值,其它自动赋默认值。例如:例如:int a5=10,20,30;int a5=10,20,30; 在对全部数组元素赋初值时,可以不指定数组长度。在对全部数组元素赋初值时,可以不指定数组长度。例如:例如:int array= 10,20,30; int array= 10,20,30; 5 5、举例、举例 用冒泡法对用冒泡法对n n个数据按升序排序个数据按升序排序( (由小到大由小到大) )。将将n n个数据两两进行比较,较大的数

3、向后移动,经过一轮比较后,将最大的数移动到末尾。个数据两两进行比较,较大的数向后移动,经过一轮比较后,将最大的数移动到末尾。下一轮再对剩下的下一轮再对剩下的n-1n-1个数进行两两比较互换,得到次大数。如此进行多轮两两比较互换个数进行两两比较互换,得到次大数。如此进行多轮两两比较互换, ,最后得到一个由小到大的有序数组。最后得到一个由小到大的有序数组。第6页/共41页例如,对4个数据(9,8,7,2)的冒泡排序过程:9 8 8 88 9 7 77 7 9 22 2 2 9排 序 第一轮 第二轮 第三轮比较次数32 1结论:对n个数排序,要进行n-1轮,第i轮中要进行n-i次比较第7页/共41页

4、#include using namespace std;void main() const int N=10; int i,j,t,aN;cout Please input N numbers : ;for(i=0;iai;/输入数组元素cout The numbers are : ; for(i=0;iN;i+)coutai t; /输出排序前的数组元素coutendl;第8页/共41页for(i=1;i=N-1;i+)/N-1轮 for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;/互换cout The sorted numbers are : ; for(i=0;iN;

5、i+)coutai t;coutendl;第9页/共41页第10页/共41页3 3、存储顺序、存储顺序按行存放,上例中数组按行存放,上例中数组a a的存储顺序为:的存储顺序为:2 2、二维数组的声明、二维数组的声明类型说明符类型说明符 数组名数组名 常量表达式常量表达式常量表达式常量表达式 例如:例如:float a34;float a34;4 4、引用、引用例如:例如:b12=a23/2b12=a23/2第11页/共41页 第12页/共41页6 6、有一个、有一个3X33X3的矩阵,分别求出两条对角线元素之和。的矩阵,分别求出两条对角线元素之和。# #include include usin

6、g namespace std;using namespace std;voidvoid main() main() int a33 int a33,i, ji, j,sum1=0,sum2=0;sum1=0,sum2=0;coutcout“Please input 3x3 matrix:Please input 3x3 matrix:”; ;for(i=0;i3;i+)for(i=0;i3;i+)for(j=0;j3;j+)for(j=0;jcin aij ; aij ; for(i=0;i3;i+)for(i=0;i3;i+) sum1+=aii;sum1+=aii; / /主对角线主对角

7、线sum2+=ai2-i;/sum2+=ai2-i;/辅对角线辅对角线 coutcout“sum1=sum1=”sum1 sum1 “nsum2=nsum2=”sum2 endl; sum2 endl; 第13页/共41页7、将数组行列式互换。、将数组行列式互换。123456789147258369for (i=0; i3; i+) for (j=0; j3; j+) t=aij; aij=aji; aji=t; for (i=0; i3; i+) for (j=0; ji; j+) t=aij; aij=aji; aji=t; 第14页/共41页8、打印杨辉三角形、打印杨辉三角形11 11

8、2 11 3 3 11 4 6 4 11 5 10 10 5 1第15页/共41页void main(void)static int n2,i,j,k;for(i=0;i2;i+)nj+=ni+i+1;coutnktnk+endl;2 1第16页/共41页第17页/共41页name是字符串变量第18页/共41页3 3、字符数组的定义:、字符数组的定义:charchar类型的数组称为字符数组类型的数组称为字符数组如:如:char a100;char a100;4 4、字符数组使用特点、字符数组使用特点 (1) (1) 可用字符串初始化字符数组,且数组长度至少要比字符串长度多可用字符串初始化字符数

9、组,且数组长度至少要比字符串长度多1 1(2)(2)整体使用字符数组的情况整体使用字符数组的情况 使用字符数组名输出使用字符数组名输出char str8=program;char str8=program;coutstr;coutstr;for(int i=0;i8;i+)coutstri; 使用字符数组名传递函数参数使用字符数组名传递函数参数 第19页/共41页例:字符数组的初始化与整体输出例:字符数组的初始化与整体输出 方式一:用一维数组一般初始化方法方式一:用一维数组一般初始化方法char str1 8=char str1 8=p p, ,r r, ,o o, ,g g, ,r r, ,

10、a a, ,m m, ,00;char str28=112,114,111,103,114,97,109,0;/ASCII char str28=112,114,111,103,114,97,109,0;/ASCII 方式二:用字符串初始化字符数组方式二:用字符串初始化字符数组char str38=char str38=“programprogram”;/;/数组长度至少要比字符串长度多数组长度至少要比字符串长度多1 1char str4=program;char str4=program;字符数组的整体输出字符数组的整体输出coutstr4;coutstr4;第20页/共41页l字符输入输出

11、字符输入输出l方法:方法:逐个字符输入输出逐个字符输入输出将整个字符串一次输入或输出将整个字符串一次输入或输出例:例:char c=China;char c=China; coutc; coutc;l注意:注意:输出字符不包括输出字符不包括 00输出字符串时,输出项是字符数组名,输出时遇到输出字符串时,输出项是字符数组名,输出时遇到00结束。结束。输入多个字符串时,以空格分隔;输入单个字符串时其中输入多个字符串时,以空格分隔;输入单个字符串时其中 不能有空格。不能有空格。第21页/共41页第22页/共41页第23页/共41页第24页/共41页有三种方法可用来定义指针变量有三种方法可用来定义指针

12、变量struct student x1, x2; 类型标识符第25页/共41页 2 2。 在定义指针类型的同时定义变量在定义指针类型的同时定义变量第26页/共41页3 3 。 直接定义指针类型变量直接定义指针类型变量第27页/共41页 int numchar name20;char sex;int age;char addr30; x1, x2;第28页/共41页第29页/共41页第30页/共41页struct LNode int data; / 数据域数据域 struct Lnode *next; / 指针域指针域 LNode; 第31页/共41页 第32页/共41页第33页/共41页第34页/共41页数组元素数组元素在内存中顺次存放,它们的地址是连续的。在内存中顺次存放,它们的地址是连续的。例如:具有例如:具有10个元素的数组 a,在内存中的存放次序如下:数组名是数组首元素的内存地址。数组名是数组首元素的内存地址。数组名是一个常量,不能被赋值。数组名是一个常量,不能被赋值。a0 a1 a2 a3 a4 a5 a6 a7 a8a9a第35页/共41页 第36页/共41页8、打印杨辉三角形、打印杨

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论