C语言程序设计 课件 第5章-数组.pptx

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;理解数组概念及其在内存中的存储结构

一维数组定义、初始化、引用

二维数组定义、初始化、引用

字符数组及字符串

使用数组处理批量同类型数据问题

应用所学知识灵活处理数据存储问题;例5-1考试成绩统计,输入一组学生成绩以-1作为结束标记,计算所有成绩的平均分并统计高于平均分人数。

分析:

输入一组数据求平均分,使用循环就可以解决,读入数据累加,然后计算平均分(后读入数据覆盖先读入数据)

若要统计高于平均分人数,就需要遍历之前所有输入的成绩数据,但是之前所学知识无法解决这个问题。

使用数组存储读入的成绩数据,再求出平均分后,再遍历成绩数组,统计出高于平均分的人数。;;一维数组的定义形式:

类型名数组名[数组长度]

说明:

类型名确定每个数组元素的数据类型

数组名是数组变量的名称,需要满足标识符命名原则

数组长度,必须是确定的值

;;数组初始化格式

类型名数组名[数组长度]={数组元素初值表};

例如:

intnum[5]={25,13,-12,36,54};

intnum[]={25,13,-12,36,54};

intnum[5]={25,13};

说明:

定义同时为数组元素赋值

若对所有元素赋值,可以省略数组长度

;数组元素引用:数组名[下标]

例如:num[i+1]=num[i]*2;

说明:

数组下标从0开始,可以使用的范围为0~数组长度-1

注意数组下标不能越界

数组定义完成后,只能通过下标对数组每个元素进行单独的使用,而不能单独使用数组名对整个数组进行访问

;1、遍历数组;;2、查找数组;;3、数组中插入数据;;4、借助数组计数;;5、排序问题;从第0个元素开始,找到数组的最大值的下标

;;;;;;6、借助数组使程序易于维护;;【例5-8】输入一个专业所有学生的学业平均成绩、竞赛获奖成绩、班级贡献成绩、活动参与成绩,并且按照学业平均成绩80%,竞赛获奖10%,班级贡献5%,活动参与5%来计算每个学生的综合成绩,请编写程序完成这个任务。

二维数组解决该问题

每个学生有四项成绩,需要使用数组记录(一个维度)

多个学生构成另一个维度;;二维数组定义形式:类型名数组名[行长度][列长度]

intnum[2][3];

;2、二维数组初始化;3、二维数组引用

;1、与矩阵相关操作;;2、二维数组的排序问题;;;【例5-11】图灵在中学时代就对密码产生浓厚的兴趣,他与好朋友使用加密的内容传递小纸条。加密的规则是确定好一个秘钥key(绝对值10以内的数字),然后将消息中的字母使用字母表顺序该字母后key个字母替换。例如key是1,则消息中”A”用”B”替换,”B”用”C”替换,以此类推,最后”Z”用”A”替换。有一天图灵收到一条消息”WIICSYMEXASPSRKAIIOWHIEVIWXJVMIRH”已知秘钥是-4,请编写程序破译一下这条消息吧。

分析:

读入消息,将字符对应的ASCII码加秘钥后输出对应的字符

批量的字符处理方式;;字符串常量

“IloveProgramming!”是一个字符串常量

字符串特点

字符串由字符序列和字符串结束符’\0’构成,字符串结束符’\0’对应ASCII表0,是不可见字符,占用存储空间。

字符串“IloveProgramming!”由字符序列IloveProgramming!和不可见的’\0’构成。字符串中的字符序列称为字符串的有效字符。;C语言没有字符串类型,字符串使用一维字符数组存储。

charstr[20]=“LOVE”

用字符串对字符数组初始化时,字符数组长度可以省略不写,但其真实长度是字符串长度+1。

charstr1[]=“LOVE”

charstr2[]={‘L’,‘O’,‘V’,‘E’}

通过判断字符串结束符’\0’来判断字符串的结束

for(length=0;str[length]!=‘\0’;length++);;1、字符串输入输出函数;1、字符串输入输出函数

;【例5-12】从键盘读入一个单词,统计单词中每个字母出现的次数。

分析:

程序要求读入一个单词,因此中间没有空格,可以使用scanf语句读入。

要统计每个字母出现的次数,字母的个数是有限的26个,结合一维数组中介绍的方法,可以使用一个长度为26的整型数组依次存储字母A(a)到Z(z)出现的次数,将每个字母的ASCII码转换为对应字母的下标,进行计数。

;;【例5-13】键盘输入一个段落,统计其中一共出现多少个单词。

分析:

要统计段落中出现的单词数,因此输入包括空格,字符串读入使用gets函数。统计单词个数就需要在每次遇到新单词时进行计数,如何才能确定当前字符是新单词的开始

您可能关注的文档

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档