C语言教程——数组.ppt

上传人:油条 文档编号:26796363 上传时间:2018-01-01 格式:PPT 页数:43 大小:1.84MB
返回 下载 相关 举报
C语言教程——数组.ppt_第1页
第1页 / 共43页
C语言教程——数组.ppt_第2页
第2页 / 共43页
C语言教程——数组.ppt_第3页
第3页 / 共43页
C语言教程——数组.ppt_第4页
第4页 / 共43页
C语言教程——数组.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《C语言教程——数组.ppt》由会员分享,可在线阅读,更多相关《C语言教程——数组.ppt(43页珍藏版)》请在金锄头文库上搜索。

1、Page 1,本章主要内容,数组的概念一维数组二维及多维数组字符数组综合举例,Page 2,数组的概念 概念引入,用基本数据类型可以解决所有问题吗?例如:对某班学生的成绩按由高到底的次序进行排序。 3 名?,30 名?,Page 3,数组的概念,数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。数组属于构造类型。,Page 4,一维数组定义和引用,一维数组的定义类型说明符 数组名 常量表达式 ; 例如: int a10; 说明: a 为整型数组名,它有10个元素:a0.a9,存储顺序:数组元素在内存中顺次存放,它们的地址是连续的。例如:数组 a,在内存中的存放次

2、序如下:,数组名字是数组首元素的内存地址。 数组名是一个常量,不能被赋值。,Page 5,一维数组的引用数组必须先定义,后使用。只能逐个引用数组元素,而不能一次引用整个数组。数组元素的表示形式:数组名下标 下标可以是整型常量或整型表达式例如:a0=a5+a7-a2*3数组下标范围:0-(N-1)(N为数组的长度),使用时注意防止下标越界。,Page 6,一维数组 初始化,可以在编译阶段使数组得到初值:在定义数组时对数组元素全部赋以初值。例如:static int a10=0,1,2,3,4,5,6,7,8,9;在对全部数组元素赋初值时,可以不指定数组长度。例如:static int a=1,2

3、,3,4,5;可以只给一部分元素赋初值。例如:static int a10=0,1,2,3,4; static int b10=1,3,5;不能给数组整体赋初值。,程序举例,Page 7,Main() int i;static int f20=1,1;/*初始化第0、1个数*/for(i=2;i20;i+) fi=fi-2+fi-1; /*求第219个数*/for(i=0;i20;i+) /*输出,每行5个数*/ if(i%5=0) printf(n); printf(%12d,fi); ,用数组来处理求Fibonacci数列问题,运行结果:11235813213455891442333776

4、109871597258441816765,Page 8,存储顺序:按行存放上例中数组a的存储顺序为:,二维数组 定义及引用,二维数组的定义类型说明符 数组名常量表达式常量表达式例如:float a34;,引用例如:b12=a23/2;,下标不要越界,Page 9,二维数组 初始化,分行给二维数组赋初值例如:static int a34=1,2,3,4,5,6,7,8,9,10,11,12;将所有数据写在一个内,按顺序赋值例如:static int a34=1,2,3,4,5,6,7,8,9,10,11,12;可以对部分元素赋初值例如:static int a34=1,0,6,0,0,11;,

5、程序举例,Page 10,将一个二维数组行和列元素互换,存到另一个二维数组中,例如:,main() 程序 static int a23=1,2,3,4,5,6; static int b32,i,j; printf(array a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji=aij; printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); ,运行结果: array a: 1 2 3 4 5 6 arra

6、y b: 1 4 2 5 3 6,Page 11,字符数组,定义和引用,例:static char str8=112,114,111,103,114,97,109,0;static char str8=p,r,o,g,r,a,m,0;static char str8=program;static char str=program;,字符串字符串常量,例如:china没有字符串变量,用字符数组来存放字符串字符串以0为结束标志字符数组的初始化,程序举例1,程序举例2,Page 12,输出一个字符串,main() static char c10=I,a,m,a,b,o,y; int i; for(i

7、=0;i10;i+) printf(%c,ci); printf(n);,运行结果: I am a boy,Page 13,输出一个钻石图形,main() static char diamond5=,*,*,*,*,*,*,*,*;int i,j;for (i=0;i5;i+) for(j=0;j%sn,str1);,Page 18,运行结果:Enter string No.1:abcdefghEnter string No.2:IJKLMNOPQRSstring No.1-abcdefghIJKLMNOPQRS,Page 19,应用举例-2,题目:从键盘输入若干行文本,每行以回车结束,以 c

8、trl+z 作为输入结束符,统计其行数。分析:数据结构:由于只统计行数,所以不必使用数组存储文本内容,只须定义一个字符变量暂存读入的字符。算法要点:读入字符可以用 getchar() 函数。每读入一个字符,要判断是否输入结束要判断读入的是否回车符,定义一个整型变量回车符进行计数,以实现统计行数的功能。,Page 20,#includemain() int c,nl; nl=0; while(c=getchar()!=EOF) if(c=n) +nl; printf(%dn,nl);,Page 21,运行结果:This supplement is designed as a tutorialfo

9、r a student who uses Data Structureswith C+ without the language backgroundor who wishes for a quick review of basicC+ concepts.5,Page 22,应用举例-3,题目:把输入的字符串逆序排列,并显示。分析:数据结构:输入的字符串用字符数组存放。算法要点:逆序排列用交换算法,求出字符串最后一个字符的下标,然后将第一个和最后一个交换,第二个和倒数第二个交换,.。,Page 23,main() char str80; int c,i,j; printf(Enter a st

10、ring:n); scanf(%s,str); for(i=0,j=strlen(str)-1;ij;i+,j-) c=stri; stri=strj; strj=c; printf(nReversed string:n%sn,str);,Page 24,运行结果:Enter a string:abcdefghReversed string:hgfedcba,Page 25,应用举例-4,题目:从键盘输入字符,以 ctrl+z 结束,统计输入的数字 09、空白符和其它字符的个数。分析:数据结构:定义一个具有 10 个元素的整型数组来存放数字 09 的个数。定义两个整型变量来存放空白符和其它字符的个数。算法要点:计数用的数组和变量要初始化为0。用循环结构处理字符读入,内嵌分支结构处理计数。,Page 26,#includemain() int c,i,nwhite,nother,ndigit10; nwhite=nother=0; for(i=0;i=0,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号