007-数组-1-ssm-2012.04.13.ppt

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

C 语言程序设计; 数 组;将一组无序的数由小到大排序;如何处理 一个班学生的学习成绩? 一行文字怎样存储? 一个矩阵怎样存储 ?......;本章内容;本章要点;;数据类型 数组名[常量表达式1]…[常量表达式n];数组是有序数据的集合。数组中的每一个元素都属于同一数据类型。使用数组名和下标来唯一的确定数组中元素。 只需要一个下标就能确定数组元素的数组称为一维数组。 数组名后是用方括号括起来的常量表达式,不能用圆括号。 C语言规定数组名表示数组在内存中的首地址。;7.2 一维数组的定义和引用;数组说明中常见错误 ① float a[0]; /* 数组大小为0没有意义 */ ② int b(2)(3); /* 不能使用圆括号 */ ③ int k, a[k]; /* 不能用变量说明数组 */ ④ int m; scanf (“%d”, m); int a[m]; /*C语言不允许对数组的大小动态说明。 数组说明必须在可执行语句前*/;# define N 5 int a[N] ; char string[N+6]; int b[2+3] ; int c[10] ; ;二、数组元素的引用;① 数组中,每个元素功能上等价于一个一般变量。 例如:输出100个学生成绩,并求出总成绩。;输入/输出数组:int x[5]; for (k=0; k5; k++) scanf(“%d”,x[k]); for (k=0; k=4; ++k) printf(“%d\n”,x[k]);;错误:scanf(“%d%d%d%d%d”,x); scanf(“%d”,x); printf(“%d”,x); printf(“%d%d%d%d%d”, x);; ;三、数组在内存中的存放;x[0] x[1] x[2] x[3];一维数组: float mark[100];;1. 在定义数组时对数组元素赋初值;7.2 一维数组的定义和引用;7.2 一维数组的定义和引用;main( ) main( ) int a[5]; {static int a[5],i; { int a[5], i; main( ) for(i=0;i=4;i++) for(i=0;i=4;i++) { int i; printf(“%d”,a[i]); printf(“%d”,a[i]); for(i=0;i=4;i++) } } printf(“%d”,a[i]); 输出: 输出: 输出: 0 0 0 0 0 五个无规则数 0 0 0 0 0;7.2 一维数组的应用举例- Fibonacci 数列;气泡法排序;例如对4个数0,2,3,9按从大到小的顺序排序;#define N 4 main( ) { int i,j,m ; int a[N]={0,2,3,9} ; for( j=1;j=N-1;j++) /*N-1轮排序*/ for( i=0 ; iN-j ; i++) /*N-j次两个相邻数组元素比较*/ if( a[i] a[i+1] ) /*顺序不符合要求时交换位置*/ { m = a[i] ; a[i] = a[i+1] ; a[i+1] = m ; } for( i=0 ; iN ; i++) printf(“%5d”, a[i]) ; };冒泡排序的缺陷 比较交换的过程中, 大的数不能一次到位,效率低。;选择法排序;对5个数5,7,4,2,8按从小到大的顺序排序;#define N 5 main( ) { int i,j,m,temp ; int a[N]={5,7,4,2,8} ; for( i=0;i=N-1;i++) /*N-1轮排序*/

文档评论(0)

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

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

1亿VIP精品文档

相关文档