C语言教学之数组PPT课件.ppt_第1页
C语言教学之数组PPT课件.ppt_第2页
C语言教学之数组PPT课件.ppt_第3页
C语言教学之数组PPT课件.ppt_第4页
C语言教学之数组PPT课件.ppt_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

,C程序设计,问题,如果需要处理1名学生的10门课程的成绩,用什么来存储这些数据?方法一:定义10个变量,每个变量中存放1门成绩。方法二:定义一个可以存储10门成绩一维数组。,变量:杯子,一个变量只能存放一个数据,数组:带多个杯子的托盘,一个数组可以存放多个数据,数轴上的一维向量x=1,2,-2,1,0,3;就相当于一维数组,直角坐标系中的矩阵就相当于二维数组,4.1一维数组4.2二维数组4.3字符数组,一维数组定义格式:类型说明符数组名整型常量表达式;例如:inta10;就定义了一个包含10个整型元素的数组a,它的内存大小可以存放10个整型数据。,4.1.1一维数组的定义,类型说明符数组名整型常量表达式;,int,char等都可以,说明此数组中每个元素都属于此类型,命名规则与变量一致不能和其他变量重名,指定元素的个数,最小为0,不能是变量,#defineN3intaN;,inta3+5;,inta1.5;,intn;scanf(“%d”,(2)inta-3;(3)inti=3;(4)inti;intai;scanf(“%d”,4.1.2一维数组元素的引用,一维数组引用格式:数组名下标,a0a1a2a3a4a5a6a7a8a9,注意:1.数组必须先定义,再使用。2.只能逐个引用数组元素,不能一次引用整个数组。例如:inta10;可以使用a0、a1.a9。若有a=1;或者a10=1;出错。a10不代表整个数组,它是下标为10的元素,越界!,1,3.下标可以是常量或变量,它表示元素的序号。例如:inti=3,a10;ai=1;表示给下标为3的元素赋值为1。4.一维数组在内存中连续存放,先存放下标为0的元素,再存放下标为1的元素,依次直至存放完所有元素。,【例4.2】定义一个包含3个整型元素的数组a,输出其元素值。,只定义数组,不给数组元素赋值,数组元素中存放的是随机值。一般要先给数组元素赋值,再使用。,数组名a中存放的是数组起始元素的地址,【例4.3】定义一个包含3个整型元素的数组a,从键盘给数组元素输入值,然后输出。,【例4.4】定义一个包含10个整型元素的数组a,从键盘给数组元素输入值,然后输出。,4.1.3一维数组的初始化,定义一维数组的同时给数组元素赋初值称为一维数组的初始化。其一般格式为:类型说明符数组名N=初值1,初值2,初值N;其中,N是表示数组元素个数的常量。,一维数组的初始化方式有以下几种:(1)全部元素初始化:chara3=1,2,n;intb5=2,11,3,14,5;intb=2,11,3,14,5;intb4=2,11,3,14,5;,在对数组的所有元素赋初值时,可以不指定数组长度。系统自动定义其长度为5,初值个数不能超过数组长度。否则,会出现语法错误。,(2)全部元素初始化:inta10=0,1,2;chara10=1,2;(3)全部元素初始化为0:inta10=0;,将a0a2依次初始化为0、1、2。未赋值的元素a3a9值全部被初始化为int中表示假的值0。,将元素a0a9全部初始化为0,将a0a1依次初始化为0、1。未赋值的元素a2a9值全部被初始化为char中表示假的值0。,若想全部初始化为1inta10=1;错误,【例4.5】定义一个含有10个元素的整型一维数组并全部初始化,将数组中所有元素逆序输出。,【例4.6】:用冒泡法对5个数排序。解:冒泡排序过程如后面图所示,其中,红圈以内为已排好序的记录。,规则:令相邻位置的数依次比较,若上面的数大,则交换。,4,1,4,1,3,5,2,41交换,43交换,3,42交换,1,13不交换,3,4,32交换,5,1,3,2,4,5,12交换,1,2,3,4,5,12不交换,结果1,2,3,4,5,R,第0趟,第1趟,第2趟,第3趟,第0次,第1次,第2次,第3次,for(i=0;iRj+1的值)则交换j增1for(j=0;j4i;j+)/内循环如果(Rj的值R2的值)tempR1;R1R2;R2temp;j增加1,比较Rj和Rj+1的大小如果(Rj的值Rj+1的值)j增加1,比较Rj和Rj+1的大小,实现交换,R1,R2,4,3,temp,2.交换过程与核心程序,4,3,4,inti;,intj;,for(i=0;i=3;i+),for(j=0;jRj+1的大小),tempRj;RjRj+1;Rj+1temp;,3.循环与核心程序的组合,inti,j;,类型一样,合并在一起,外循环,将处理5个数推广到处理n个数,for(i=0;i1交换,32交换,2,24不交换,4,5,1,13不交换,2,3,34不交换,4,5,4str2就会出错,应该使用strcmp(str1,str2)0。,【例4.18】使用strcmp函数比较两个字符串。,【例4.19】不使用strcmp函数比较两个字符串。,6.求字符串长度函数strlen,格式:strlen(字符数组或字符串)功能:测字符串实际长度,不包含0在内。例如:charstr20=“Test”;printf(“%d”,strlen(str);说明:输出结果不是20,也不是5,而是4。,【例4.20】使用strlen函数测字符串长度的功能。,【例4.21】不使用strlen函数测字符串长度的功能,7.字符串大小写转换函数,格式:strupr(字符数组)功能:将字符数组中字符串的小写字母转换成大写字母。例如:charstr1“abcdef”;strupr(str1);puts(str1);结果:ABCDEF,8.字符串大小写转换函数,格式:strlwr(字符数组)功能:将字符数组中字符串的大写字母转换成小写字母。例如:charstr2=“ABCDEF”;strlwr(str2);puts(str

温馨提示

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

评论

0/150

提交评论