一维数组的定义和引用

上传人:yx****d 文档编号:242878009 上传时间:2024-09-10 格式:PPT 页数:38 大小:99.50KB
返回 下载 相关 举报
一维数组的定义和引用_第1页
第1页 / 共38页
一维数组的定义和引用_第2页
第2页 / 共38页
一维数组的定义和引用_第3页
第3页 / 共38页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第 7 章 数组,7.1 一维数组的定义和引用,7.2 二维数组的定义和引用,7.3,字符数组,1,7.1 一维数组的定义和引用,7.1.1,定义:,类型说明符 数组名常量表达式,如:,int a10, b100;,说明:(1) 数组名定义同变量名.,(2) 用 ,而不能用( ) .,(3) 常量表达式表示元素的个数:,a10中有10个元素,从a0a9,下标从0开始,不能使用数组元素a10.,(4) 常量表达式中不能包含变量.,int n;,scanf (“%d”, ,int an;,2,7.1.2 一维数组元素的引用,先定义,后使用。不能一次引用整个数组。,表示形式,:,数组名下标,下标可以是整型常量或表达式。例如:,a0=a5+a7-a2*3,3,EG: main( ) ,int i, a10 ;,for (i=0;i=0;i ),printf(“%d”,ai);,运行结果:,9 8 7 6 5 4 3 2 1 0,4,1. 定义数组时对数组元素赋初值. static int a10 =0,1,2,3,4,5,6,7,8,9;,2. 只将一部分元素赋值. static int a10=0,1,2,3,4; 只提供前五个元素的初值.,3.对全部数组元素赋初值时,可以不指定数组的长度.,static int a =1,2,3,4,5;,static int a10=1,2,3,4,5; 注意:的区别,中只有5个元素,而中有10个元素,其中后5个元素初值为0.,4. 使数组元素全部为0 int a10=0,0,0,0,0,0,0,0,0,0;但不能:int a10=0*10;,7.1.3 一维数组的初始化,5,7.1.4 一维数组程序举例,例7.2 Fibonacci 数列,main(),int i;,int f20=1,1;,for(I=2;i20;i+),fi=fi-2+fi-1;,for(i=0;i20;i+), if(i%5= =0) printf (n);,printf (“%12d, fi);,6,例7.3 用起泡法将10个数从小到大排序,起泡法排序思想:将相邻两个数比较,将小的调到前头. 算法:,main( ), int a11, i , j , t ;,printf (“input 10 numbers : n ” ) ;,for (i=1; i11; i+),scanf (“ %d”,for (j=1;j=9;j+),for (i=1;iai+1) t = ai ; ai = ai+1 ; ai+1 = t ;,printf (“ the sorted numbers :n”); for (i=1;iai+1,aiaI+1,输出,a1,到,an,8,Void sound(unsigned frequency),void nosound (),void delay(unsigned milliseconds);,9,唱名,1,2,3,4,5,6,7,频率 131 147 165 175 196 220 247,唱名 1 2 3 4 5 6 7,频率 262 294 330 349 392 440 494,1=C 4/4,1 2 3 1| 1 2 3 1| 3 4 5 -| 3 4 5-|,56,54,31|,56,54,3 1| 2 5 1- | 2 5 1-|,10,#include ,main(),unsigned int sing=262,250,294,250,330,262,250,262,250,294,250,330,250,262,250,330,250,349,250,392,500,330,250,349,250,392,500,392,125,440,125,392,125,349,125,330,250,262,250,392,125,440,125,392,125,349,125,330,250,262,250,294,250,196,250,262,500,294,250,196,250,262,500,0,0;,11,unsigned int *p; p=sing; while (*p) sound(*p+); delay(*p+); nosound(); ,12,7.2 二维数组的定义和引用,7.2.1 二维数组的定义与引用 类型说明符 数组名常量表达式常量表达式 说明:元素的排列顺序是按行存放的,这在数组初始化和指针表示时方便易行.,C,语言允许使用多维数组,如:int f345;,13,7.2.2 二维数组的引用,表示形式: 数组名下标下标,注意:下标值应在已定义的数组大小的范围内,不要越界.,b12=a23/2;,区分:定义数组 a22 和引用元素 a22 前者是定义数组的维数和各维的大小,后者是下标值,不要混淆.,14,1.分行赋值: static int a22=1,2,3,4;,2.将所有数据写入一个花括号中:,static int a22=1,2,3,4;,3.对部分元素赋值: 若定义为静态的,其余为0. int a34 = 1, 5, 9;,7.2.3 二维数组的初始化,:,int a34 = 1,0,6,0,0,11;,15,4.若对全部元素赋值,第一维的长度可省略,但第二维的长度不可省.,static int a22=1,2,3,4; 等同于,static int a 2=1,2,3,4;,例如,int,a34=1,6;,可以对某几行元素赋值int a34=1,5,6;,16,7.2.4 程序举例,例7.5 3X4矩阵,求最大值及其所在的行号和列号。,Max=a00,For i=0 to 2,For j=0 to 3,aijmax,Y,N,Max=aIj,row=i,colum=j,输出: max 和row, colim,17,main( ), int i ,j, row=0,col=0,max;,static int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;,max=a00;,for (i=0;i=2;i+),for (j=0;jmax),max=aij; row=i; col=j;,printf(“max=%d,row=%d,col=%d”, max,row,col); ,输出结果:max=10,row=2,col=1,18,7.3 字符数组,7.3.1 字符数组的定义,char c10; (占一个字节) c0=I; c1= ; c2=a; c3=m; c4= ; c5=h; c6=a; c7=p; cp=; c9=y; I am happy,也可用 int c10; (占两个字节),19,7.3.2 一维数组的初始化:,1)逐一赋值。,Char c10=I, , a, m, , h,a,p,p,y;,2)初值个数同预定的长度相同时,可忽略数组长度。,Char c=I, , a, m, , h,a,p,p,y;,应用:,20,main( ), static char c5=a ,b ,c ,d ,e;,int i;,for (i=0;i5;i+),printf (“%c”, ci) ;,printf (“n”);,运行结果:,a b c d e,21,7.3.3 字符数组的引用,例7.6 输出一个字符串,main(), char c10=I, , a,m, ,a, ,b,o,y;,int i;,for (i=0;i10;i+),printf (%c, ci);,printf (n);,I am a boy,22,例7.7 输出一个钻石图形,main(),char diamond5= , ,*, ,*, ,*,*, , , ,*, ,*, ,*, , ,*,;,int i, j;,for (i=0;i5;i+),for (j=0;jcompare.,字符串1=字符串2。 返回值为0,字符串1字符串2。 返回值为正整数,字符串1字符串2。 返回值为负整数 注意:if(str1= =str2) printf(Yes); (错误)而只能: if(strcmp(str1, str2) = =0 ) printf(Yes);,32,(6) strlen (,字符数组),测试字符串长度,不包括结束标志0.char str10 = china;printf (%d, strlen(str);,(7) strlwr (字符串),将大写字母转换成小写字母.,(8) strupr (,字符串),将小写字母转换成大写字母.,33,输入一行字符,统计单词个数。,#include “stdio.h”,main( ), char string81, c;,int i,num=0,word=0; /*num,统计单词个数*/,gets(string);,for (i=0;(c=stringi)!=0;i+),if(c= = ) word=0;,else if (word= =0),word=1;num+;,printf(“ There are %d words in the linen”,num);,How do you do,34,小结:本章分为三个部分:一维数组,二维数组,字符数组。,要分别掌握他们的定义、表示形式、初始化以及应用。,在字符数组的字符串处理函数中,对于各个函数要掌握,其功能、参数和返回值,第六章结束,35,有一个34的矩阵,求出最大的值及其行列号,main( ), int i ,j, row=0,col=0,max;,static int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;,max=a00;,for (i=0;i=2;i+),for (j=0;jmax),max=aij; row=i; col=j;,printf(“max=%d,row=%d,col=%d”, max,row,col); ,输出结果:max=10,row=2,col=1,36,思考题:,1. if后的括号中只能用,(A) 只能用逻辑表达式 (B) 只能用关系表达式,(C)只能用逻辑表达式 和关系表达式 (D),可用任意表达式,2. 优先级最高的运算符是,(1) A) 0| E10 | a+bc,(5) !ae (6) a+ & e+ & c+,(7) !e & e = = b = = +c (8) (0a) & (a2),(9) ! 0 | d & a = = c+d (10) (b = =10) & (a= =10),6。 假定所有变量都正确定义,输出结果,(1)x=0 ; y=0;,while (x0),printf (y=%d x= %dn, y, x);,(3) s=7;,while (- -s) ; s-=2;,printf (s= %dn, s);,38,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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