网站大量收购独家精品文档,联系QQ:2885784924

[数学]数组.ppt

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

利用数组来组织数据 1 数据存储 2 排序问题 3 习题 一、数据存储 如何存放大量的同类型的数据? 例: 一个班所有学生的成绩 数组的概念和用处 数组(Array) :一组有序的同类型数据的集合。 作用:保存大量同类型的相关数据 如矩阵运算,表格数据等 数组元素:集合中的成员 7.1 一维数组 int a[10]; 定义一个有10个元素的数组,每个元素的类型均为int 使用a[0]、a[1]、a[2]、……、a[9]这样的形式访问每个元素。它们与普通变量没有任何区别 系统会在内存分配连续的10个int空间给此数组 数组下标可以是整型表达式 7.1.2 数组的初始化 数组定义后的初值仍然是随机数,初始化使数组元素具有初始值。 int a[5] = { 12, 34, 56 ,78 ,9 }; int a[5] = { 0 };//少写,其余的为0 int a[] = { 11, 22, 33, 44, 55 }; 错误初始化: int a[4] = { 12, 34, 56 ,78 ,9 }; int a[5]={}; 7.1.3 一维数组元素的引用 数组的下标都是从0开始 对数组每个元素的使用与普通变量无异 可以用任意表达式作为下标,动态决定访问哪个元素(下标定义时不能是变量,引用可以。) for (i=0; i5; i++) a[i] = 2 * i; 下标越界是大忌! 使用大于最大下标的下标,将访问数组以外的空间。那里的数据是未知的,可能带来严重后果 一维数组的输入和输出 例:输入10个整数,然后输出 (2)手工输入 #includestdio.h #define N 10 void main() {int a[N],i; for(i=0;i=N-1;i++) scanf(%d,a[i]); for(i=0;i=N-1;i++) {printf(%d\t,a[i]); if((i+1)%5==0) printf(\n); } } 实践 (1)以下为一维整型数组a的正确定义的是 。 A int a(10); B int n;scanf(%d,n); int a[n]; C int n=10,a[n]; D #define N 10;int a[N]; (2)在C语言中,引用数组元素时,其数组下标的数据类型允许是 。 A 整型常量 B 整型表达式 C 整型常量或整型表达式 D任何类型的表达式 (4)如有说明:int a[10];则对a数组元素的正确引用是 。 A a[10] B a[3.5] C a(5) D a[10-10] (5)编程: 从键盘输入任意5个整型数据,存放到数组a中,然后对数组所有元素值加5后输出。 数组涉及的常用操作问题 求和/求平均值 分类统计 查找 修改 求最大值/最小值 插入 删除 排序 …… 求平均值:输入全班学生成绩,求平均成绩 假设班里学生人数为50 求平均值:输入全班学生成绩,求平均成绩 假设班里学生人数为50 分类统计:输入全班学生成绩,统计其中及格人数和不及格人数 查找给定的数:输入一个整数,在给定的整数数组中查找是否有相匹配的数,若找到,则输出其下标 例:输入10个整数到一个数组中,输出最小元素。 二、数组的应用——排序问题 1.题目 用起泡法对10数排序(升序) 2.分析 起泡排序的基本思想: 从待排序序列的一端开始,首先对第1个和第2个元素进行比较,若发现第一个大于等于第二个元素(即逆序),则交换两者的排列位置,依次类推,把较小的数据交换到前面。这些数据的交换过程中,较小的数据就像水中的气泡一样不断地浮出,故而得名起泡法,也叫冒泡法。 下面以5个数的起泡排序为例作具体说明。 3.程序 #includestdio.h #define M 10 int a[M]; void bubble() { int i,j,t; for(i=0;iM-1;i++) { for(j=0;jM-i-1;j++) if(a[j]=a[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } main() { int i; printf(please input 10 numbers:); for(i=0;i10;i++) scanf(%d,a[i]); printf(before sorted:); for(i=0;i10;i++) printf(%d,a[i]); printf(\n); bubble(); printf(after sorted:); for(i=0;i10;i++) printf(%d,a[i]); print

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档