电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数组c语言课件

46页
  • 卖家[上传人]:F****n
  • 文档编号:88095795
  • 上传时间:2019-04-18
  • 文档格式:PPT
  • 文档大小:1.23MB
  • / 46 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第四章 数 组,Chapter 4 Array,数组必须先说明后使用。说明的目的如下:,说明数组的名字(标识)。 说明数组的类型。 说明数组的维数。 确定各维下标的变化范围。,编译系统将根据说明,开辟内存单元按特有的顺序和相应的类 型为各元素分配内存单元。,4.2 一维数组,一维数组的说明,说明方式:,type array1常量表达式, , arrayn常量表达式;,类型说明符,根据需要可加修饰说明。说明数组的类型。,数组名,用标识符命名。,用 包含的常量表达式。数组的下标从0变化到常量达式的值减一。,int id5, iyear10; float fScore36;,当说明数组后,编译时系统会根据定义的类型分配连续的一段 内存单元给数组的各元素。,id0,id1,id2,id3,id4,系统为数组分配的连续内存单元,每个单元占两个BYTE。首地址用数组名id表示。,一维数组的初始化,数组的元素可以在说明数组时初始化。,int a10=1,2,3,4,5,6,7,8,9,10; /*说明数组,同时初始化全部元素。*/,float fValue10=1.0,2.0,3.0; /*说明数组

      2、,给部分元素初值,其余元素为0。*/,unsigned a =0x0000,0x0001,0x0002; /*当数组元素全部赋初值时,可以不指定长度*/,数组的引用,原 则:只能引用数组元素,而不能引用整个数组。 引用方式:数组名整型表达式 /*下标变量*/ 每个数组元素,可以出现在简单变量能够出现的任何地方。,a1=12; s=a2+a1*20;,举例,求10个学生一门课程的平均分,并输出低于平均成绩的分数。,#include void main(void) float fScore10,aver=0; int i; for(i=0;i10;i+) scanf(“%f”, ,说明数组。,循环输入各元素的值并累加。,循环判断条件,满足条件输出。,4.2 多 维 数 组,在实际应用中,经常会遇到一些用多维索引的数据。如:四个 学生三门课的成绩。可以用下表表示:,显然,该表的每一项需要有两个索引项。表现为数组的两个下 标。超过一个下标的数组称为多维数组。,行:代表某个学生。,列:代表某门课程。,多维数组的说明,说明方式: type array常量表达式1常量表达式n,;,n个整型常量表达式

      3、,数组元素的个数?,int a23 , b452;,多维数组在内存中的顺序,int a33;,二维结构: a00 a01 a02 a10 a11 a12 a20 a21 a22,排列顺序:先行后列。,a00,a01,a02,a10,a11,a12,a20,a21,a22,下 标 为 0 的 行,总原则:最后一个下标先变化,变化一个周 期后,倒数第二个开始变化,如此类推。,a为数组在内存中的首地址。,int b234;,内存中的排列?,多维数组赋初值,数组可以在说明时初始化。,全部赋初值,int a23=1,2,3,4,5,6;,下标为0的一行,下标为1的一行,int b23=1,2,3,4,5,6;,按内存顺序赋初值。,部分赋初值,int a23= 1 , 2 ;,0行的0列的元素赋初值。0行其余值为0。,int a23=1,2;,对全体数组元素赋初值,第一维下标可以省略。,int a 3=1, 2, 3, 4, 5, 6;,数组元素的引用,数组定义后,具备简单变量的一切性质,可以作为表达式的运 算对象,也可以被赋值。引用时,只能引用数组元素,方式如下:,arrayexp1expn,i

      4、nt a1010 ,y,i=2; ai+26=20; y=ai+26*100/30; a1011=34;,对4行6列的元素赋值。,参加表达式运算。,C语言不作下标检查,语法正确,但使用危险,可能造成程序的错误!,整型表达式。,4.4 字 符 数 组与字符串,C语言没有字符串变量,可以定义字符数组,每个元素存放一 个字符,从而达到存放字符串的目的。,字符数组的说明,char charrayconst exp1const expn,; char a10,b212;,字符数组的初始化,一维数组赋初值,char str16= h, e, l, l, o,0; char str2 =”hello ”;,用单个字符对每一个元素赋值。,用字符串对数组赋初值。,可以指定长度,也可不指定长度。,系统会在字串的结尾加0,表示字符串结束。因此,说明数组 时,长度指定应至少比实际长度大1,保证赋初值正确。,0,存储结构:,h,e,l,l,o,0,二维数组赋初值,二维数组的每一行可以存放一个字符串。,char str36=”wang”,”zhang”,”liu”;,str数组在内存中的首地址。,存储结构,字符数

      5、组的输入输出,格式输入输出函数,输出: for(i=0;iSTRLEN;i+) printf(“%c”,str i ); /*通过循环输出各元素*/ printf(”%s”,str); /*用字符串形式输出*/,输入: scanf(”%s”,str); /*用字符串输入整个数组*/,用scanf函数输入时space作为输入的分隔符,因此输入带空格 的字符串,会造成输入不全。,char a20; scanf(”%s”,a); 输入:China Anhui Hefei 结果a数组的内容是:China0,为了解决这个问题,系统定义如下专用于字符数组的i/o函数。,gets( )字符串输入函数,用法:,char str 80; gets(str);,作用: 读入一个以换行符为终结符的字符串到str中,用0代替换行符。,数组名作为函数的参数。,puts( )字符串输出函数,用法:,char string =”China”; puts(string);,数组名作为函数的参数。,作用: 输出以NULL 即0结尾的字符串string,自动加上换行符。,字符输入输出举例,#include void ma

      6、in(void) char str80; int i; gets(str); for(i=0 ; str i !=0; i+) if(stri=a ,chp4ex0,判断字符串结束。,常用的字符处理函数,C语言定义了一系列的字符处理函数用于字符串的处理,该类 函数的原型定义在string.h中。因此,在使用该类函数时,应在程 序的开始处,加#include ,字符串拷贝函数strcpy(str1,str2),作用:将str2拷贝到str1中。,用法: char str110, str2 =”Computer”; strcpy(str1,str2); /*str1的内容是“Computer”*/ strcpy(str2,”Program”); /*str2的内容是“Program”*/,说明:,str1的长度要足够长; str1只能是字符数组名,str2可以是字符数组或字符串常量。,字符串连接函数strcat(str1, str2),作用:将str2连接到str1后(去掉str1的0)。,用法: char str115=“Anhui ”, str2 =”Hefei”; strcat(st

      7、r1,str2); puts(str1); /*输出结果为 Anhui Hefei */,说明:,str1的长度要足够长; str1只能是字符数组名,str2可以是字符数组或字符串常量。,测试字符串长度函数strlen(str),作用:测试字符串的实际长度。函数运算得到整型值,该值是 字符串的长度!,int iLenStr; char str =“China”; iLenStr=strlen(str); printf(“%d”,iLenStr);,结果?,字符串的比较 strcmp(str1,str2),作用:对str1和str2 进行逐位无符号字符(ASCII码)比较, 直到对应位字符能够确定关系或到串尾为止。返回整型比较结果。,字符的数值关系也就是字符的ASCII码值的数值关系。,比较结果如下:,char str1 =”abcd”; char str2 =“abcd”; int iRe1,iRe2,iRe3; iRe1=strcmp(str1,”abdc”); iRe2=strcmp(str1,str2); iRe3=strcmp(”abcde”,str2);,abcd,abdc,

      8、c,d,c-d -1 结果小于0。,strlwr(str)将str中的大写字母转换成小写字母。,strupr(str)将str中的小写字母转换成大写字母,#include #include void main(void) char str1 =“c programming! 123“,str2=“Computer“; strlwr(str2); strupr(str1); puts(str1); puts(str2); ,C PROGRAMMING! 123 computer,举例:统计三行文字中大写字母、小写字母及数字的个数。,#include #include void main(void) char str80; int i, j, iAnum=0, ianum=0,i0num=0; for(i=0; i=A ,行循环,列循环,chp4ex2,数组的常用算法,数组是同类型数据的集合。便于整体处理数据,数组操作的主 要算法有:,求极值; 排序; 查找;,求极值及其位置,算法演示,一维数组的极值,#include void main(void) int a10=1,6,-2,5,4,

      9、32,47,-66,13,14; int iMax, iPos, i; iPos=0; iMax=a0; for(i=1; iiMax) iMax = ai; iPos = i; printf(“Max=%5d Position=%5d”,iMax,iPos); ,假定最大值及其位置。,循环比较,当前元素比最大值大,将其 赋值为新的最大值并记录其位置。,chp4ex3,二维数组求极值,#include void main(void) float a34= 1.0, 3.0, 5.2, 7.4, 4.6, 5.5, 4.2, 1.2, 10.5, 0.23,1.3, 0.5; int i, j, iRow=0,iCol=0; for(i=0; i3; i+) for(j=0;j4;j+) if(aijaiRowiCol) iRow = i; iCol = j; printf(”%f7.2,iRow%5d,iCol%5d”,aiRowiCol,iRow,iCol); ,假定最小值的位置。,二重循环遍历所有元素,比较求最小值,记录其位置。,chp4ex4, 排 序,排序的概念,排序是将一组随机排放的数按下标顺序从大到小或从小到大重 新排列。,1 ,5,4,6

      《数组c语言课件》由会员F****n分享,可在线阅读,更多相关《数组c语言课件》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.