n10-guo-数组.ppt

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

Zhuhai, 2011 GUO Sumei C语言程序设计 郭 素梅 GUO Sumei 循环练习: 从键盘输入若干个学生的成绩,统计并输出最高、最低和平均成绩,当输入负数时结束输入,用do-while语句实现。 循环练习: 输出1~1000之间能被11整除且个位数为5的所有整数,用for语句实现。 顺序/选择/循环结构程序综合例 编写程序: 统计从键盘输入一行中的数字个数z, \t、\n和空白数y,其他文字数x,并输出。 先看输入: 没有提出输入多少个字母,循环次数是不定,该如何设计输入和判断条件呢? getchar() 和 scanf(“%c”) 仅仅能输入一个字母 while(???) for(??? ; ??? ; ???) 再看统计部分:三个分支。 利用switch语句设计三个分支,统计数字、空格等和其他输入字符的个数。 利用关系、逻辑运算符和if语句设计三个分支。 举例 从键盘输入10个学生的成绩,统计并输出平均成绩。 循环不能解决的 从键盘输入10个学生的成绩,统计并输出平均成绩、高于等于平均成绩的人数、低于平均成绩的人数。 数组与字符串 数组 任何数据: 定义 初始化 引用 一维数组 定义:数据类型 标识符[长度]; 数组 定义:数据类型 标识符[长度]; 说明:方括号 [] 长度: 必须为正整数, 或常量表达式 不能利用动态 int a[2*3]; n=10; int a[n]; 数组 引用: 先定义后使用 逐一引用 通过数组名和下标 (下标不能超过定义的长度范围) 比如:int a[10]; 定义了一个长度10的整型数组a,其下标范围0到9 a[0], a[1], ..., a[9]为a的所有元素 一维数组 说明 下标表示了元素在数组中的位置 下标可以用表达式表示 a[2*3] 相当于a[6] 下标不能超过定义的长度范围 和变量相同的点: 使用前要定义 不赋初值其值不确定 数组的引用 利用下标: x[0], x[1], x[2] t = x[2]; t = x[0] - x[1]; 引用时的下标: 范围:0到长度减1。 int a[10]; 下标0到9 可以是任意整型表达式:i=3;y=x[i*3]; 注意 数组必须: 数据类型相同 成员个数有限 排列有序 下标从零开始,不得超过其定义的长度 使用前要定义,不赋值其值不定 逐一引用 数组初始化:定义时用 { , , } 进行所有元素的初始化 int a[4]={3, 2, 1, 0}; 进行部分元素的初始化 int a[4]={3, 2}; 按顺序赋值。 意味着a[0]=3; a[1]=2; 而a[2], a[3] 自动为0 初值的个数不能超过定义的数组长度 从 0 开始 数组的存储 基本运算符:sizeof sizeof(数据类型) 数据类型所占的字节数 sizeof(int) sizeof(char) sizeof(double) 基本运算符:sizeof sizeof(数据) 数据所占的字节数 int ix[10], iy; double dx[10]; 实例分析 实例分析 实例分析 从键盘输入个人所得,当输入负数时结束输入。统计并输出平均所得,计算并输出Gini系数。 意大利的统计学者Gini发明,是所得分配的不平等的指标:0完全平等、1.0完全不平等(一人占有所有)、0.4社会骚乱多发警戒值 实例分析 所有值a[i]的差值绝对值的平均subAve=∑(a[i]-a[j]) i!=j 所有值的平均allAve=∑a[i] Gini=subAve/(allAve*2); 循环、数组练习: 从键盘输入若干个学生的成绩,输入负数结束输入。 统计并输出最高成绩和最低成绩,平均成绩,以及高于等于平均成绩的人数。 实例分析 实例分析 课题:有一个数组,内有10个数,求出最小的数和它的下标,然后将它与数组中的第一个数对换。 int a[10]; a[0] a[i] a[9] 定义两个临时变量 min(保存最小数)和 k(保存下标)。 先假定第一个元素就是最小的:min=a[0],k=0。 思 路 用min与数组中的每一个元素a[i]比较, 若a[i]比min小, 将a[i]赋给min, 将下标i赋给k, 否则,继续比较。 65 12 53 7 26 20 68 3 13 1 课题:有一个数组,内有10个数,求出最小的数和它的下标,然后将它与数组中的第一个数对换。 输入数据a i = 1; k=i; min=a[k]; min a[i] i10 i++ k=0; min=a[k]; a[k] = a[0]; a[0] = min; 输出a 思考:如果数组里最小的

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档