c程序设计第七章ppt.ppt

上传人:创****公 文档编号:1704859 上传时间:2019-10-23 格式:PPT 页数:34 大小:311KB
返回 下载 相关 举报
c程序设计第七章ppt.ppt_第1页
第1页 / 共34页
c程序设计第七章ppt.ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《c程序设计第七章ppt.ppt》由会员分享,可在线阅读,更多相关《c程序设计第七章ppt.ppt(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C程序设计,谭浩强 著清华大学出版社,第七章 数组,一维数组的定义和引用 二维数组的定义和引用 字符数组,C程序设计 第七章 数组,7.1 一维数组的定义和引用,C程序设计 第七章 数组,一维数组的定义 一维数组元素的引用 一维数组的初始化 一维数组程序举例,返回主菜单,C程序设计 第七章 数组,7.2 二维数组的定义和引用,二维数组的定义 二维数组的引用 二维数组的初始化 二维数组程序举例,返回主菜单,7.3 字符数组,C程序设计 第七章 数组,字符数组的定义 字符数组的初始化 字符数组的引用 字符和字符串结束标志 字符数组的输入输出 字符串处理函数 字符数组应用举例,返回主菜单,C程序设计

2、 第七章 数组,7.1.1 一维数组的定义,类型说明符 数组名 常量表达式;,定义:,float b10; 说明实型数组b,有10个元素。,char ch20; 说明字符数组ch,有20个元素。,说明,一维数组定义的几点说明,1)数组的类型实际上是指数组元素的取值类型。,2)数组名的书写规则应符合标识符的书写规定。,3)数组名不能与其它变量名相同。,4)数组元素的 下标从0开始。,a5的5个元素分别为a0, a1, a2, a3, a4。,5)不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。,int a3+2 ; int n=5; int an; ,6)允许在同一个类型

3、说明中,说明多个数组和多个变量。,例如:int a,b,c,d,k110,k220;,7.1.2 一维数组元素的引用,C程序设计 第七章 数组,下标可以为整型常量或整型表达式 ,例如 a0=a5+a7-a2*3,例7.1,例7.1 数组元素的引用,main() int i,a10; for(i=0;i=0;i-) printf(%d ,ai);,运行程序,运行结果:9 8 7 6 5 4 3 2 1 0,C程序设计 第七章 数组,C程序设计 第七章 数组,7.1.3 一维数组的初始化,初始化赋值的一般形式为,类型说明符 数组名常量表达式=值,值,值;,几点规定:,1)可以只给部分元素赋初值。,

4、2)只能给元素逐个赋值,不能给数组整体赋值。,3)如给全部元素赋值,则在数组说明中可以不给出数组元素的个数。,例如:int a10=0,1,2,3,4;,例如给十个元素全部赋1值 ,只能写为:int a10=1,1,1,1,1,1,1,1,1,1;而不能写为:int a10=1;,例如:int a5=1,2,3,4,5;可写为: int a=1,2,3,4,5;,C程序设计 第七章 数组,7.1.4 一维数组程序举例,例7.3,例7.2,例7.2 用数组来处理求Fibonacci数列问题,main()int i; int f20=1,1; for(i=2;i20;i+) fi=fi-2+fi-

5、1; for(i=0;i20;i+) if(i%5=0)printf(n); printf(%12d,fi);,运行程序,运行结果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610987 1597 2584 4181 6765,C程序设计 第七章 数组,例7.3 用起泡法对10个数排序,main() int a11; int i,j,t; printf(input 10 numbers :n); for(i=1;iai+1) t=ai;ai=i+1;ai+1=t; printf(the sorted numbers :n); for(i=1;i int a

6、4=1,2,3,4,5,6,7,8,9,10,11,12;,例如:int a33=1,2,3;是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为: 1 0 0 2 0 0 3 0 0,C程序设计 第七章 数组,7.2.4 二维数组程序举例,例7.4,例7.5,例7.4 将一个二维数组行和列元素互换,存到另一个二维数组中。,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=

7、aij; printf(“n”); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(“%5d”,bij); printf(n); ,运行程序,C程序设计 第七章 数组,运行结果: array a: 1 2 3 4 5 6 array b: 1 4 2 5 3 6,例7.5有一个3*4的矩阵,求出其中值最大的那个元素的值,以及其所在的行号和列号。,main()int i,j,row=0,colum=0,max;static int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;for(i=0;i

8、max) max=aij; row=i; colum=j; printf(max=%d,row=%d,collum=%n,max,row,colum); ,运行程序,C程序设计 第七章 数组,运行结果:max=10,row=2,colum=1,C程序设计 第七章 数组,7.3.1 字符数组的定义,类型说明符 数组名 常量表达式;,定义:,C程序设计 第七章 数组,7.3.2 字符数组的初始化,1)逐个字符赋给数组中各元素。,2)如果花括号中提供的初值个数大于数组长度,则语法错误;如果初值个数小于数组长度,只将这些字符赋给数组中前面那些元素,其余为0。,3)如果提供的初值个数与预定的数组长度相同

9、,在定义时可以省略各数组长度,系统会自动根据初值个数确定数组长度。,4)可以定义二维数组。,例如:char c10=I, , a, m, , h, a, p, p, y,例如:char c10=c, , p, r, o , g, r, a, m ;则c0=c; c1= ; c2=p; c3=r; c4=o; c5=g; c6=r; c7=a; c8=m; c9=0;,char c=c, , p, r, o , g, r, a, m,char diamond55= , , *, , *, , *,*, , , *, , *, , *, , , *;,C程序设计 第七章 数组,7.3.3 字符数组

10、的引用,例7.6,例7.7,例7.6 输出一个字符串。,main() char c10=I, ,a,m,a,b,o,y;int i ;for(i=0;i10;i+)printf(%c,ci);printf(n);,运行程序,C程序设计 第七章 数组,运行结果:I am a boy,例7.7 输出一个钻石图形。,main() char diamond5=,*,*,*,*,*,*,*,*; int i,j; for(i=0;i5;i+) for(j=0;j char c=I, , a, m, , h, a, p, p, y, 0;,用字符串常量使字符数组初始化,C程序设计 第七章 数组,7.3.5

11、 字符数组的输入输出,1)逐个字符输入输出,用格式符%c输入或输出一个字符。,2)将整个字符串一次输入输出,用%s格式符。,3)如果数组长度大于字符串实际长度,只输出到遇0结束。,4)如果一个字符数组中包含一个以上0,则遇第一个0时输出就结束。,例如: char c=“China”; printf(“%s”,c);,例如:char c10=“China”printf(“%s”,c只输出“China”5个字符,例如:char str13; scanf(“%s”,str);如输入以下12个字符:How are you?则str数组状态为,字符串拷贝函数,将字符串2拷贝到字符数组1中。 char s

12、tr110,str2=“China”; strcpy(str1,str2);,C程序设计 第七章 数组,7.3.6 字符串处理函数,puts(字符数组),gets(字符数组),strcpy(字符数组1,字符串2),例如: char str=“Chinan Beijing”; puts(str); 输出结果为China Beijing,例如:gets(str)从键盘输入:Computer则将“Computer”送给字符数组str,连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值-字符数组1的地址. char str130=“Peoples

13、Republic of ”; char str2=“China”; printf(“%s”,strcat(str1,str2); 输出: Peoples Republic of China,C程序设计 第七章 数组,7.3.6 字符串处理函数,strcat(字符数组1,字符数组2),字符串拷贝函数,将字符串2拷贝到字符数组1中。 char str110,str2=“China”; strcpy(str1,str2);,对两个字符串自左到右逐个字符比较(按ASCII码大小比较),直到出现不同的字符或遇0为止 比较结果: 串1=串2 函数值为0 串1串2 函数值为整数 串10) xtrcpy(string,str2); printf(n the largest string is :n%sn,string); ,运行结果:CHINAHOLLANDAMERICAthe largest string is:HOLLAND,运行程序,The end,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 校园应用

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com