资源描述:
《《C语言数组教案》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章构造数据类型-数组和结构体计算机与信息技术学院靳小燕内容提要数组类型;常用算法:排序、查找等;难点:二维数组应用向函数传递一维数组和二维数组;用字符数组存取字符串;使用字符串处理函数处理字符串;结构体。5.1数组概述5.2一维数组5.3一维数组应用5.4二维数组5.5数组作函数的参数5.6字符数组与字符串5.7结构体练习数学黑洞问题取任意一个4位数(4个数字均为同一个数的除外),把四个数字对调后组成一个最大的数和一个最小的数,两数相减得出一个新数,重复以上过程,至多7次,就会得到6174,且不
2、再变化。例子:以7642为例:7642-2467=5175;7551-1557=5994;9954-4599=5355;5553-3555=1998;9981-1899=8082;8820-0288=8532;8532-2358=6174;7641-1467=6174。程序演示运行结果:5.1数组概述构造数据类型之一定义:数组是有序数据的集合例如:inta[30];组成数组的数据称为数组的元素数组的每个元素都属于同一个数据类型每个数组要用一个统一的标识符标识用处:保存大量同类型的相关数据如矩阵运算,
3、表格数据等。定义引用初始化输入和输出举例5.2一维数组数据类型说明符数组名[常量表达式];合法标识符例inta[6]={1,3,5,7,9,11};编译时分配连续内存内存字节数=数组元素的个数*sizeof(元素数据类型)数组名表示内存首地址,是地址常量常量表达式中可以包括符号常量和符号常量,不能包括变量。1357911aa[0]a[1]a[2]a[5]a[3]a[4]定义一维数组引用数组必须先定义,后使用只能逐个引用数组元素例如,定义数组inta[8],数组元素为:a[2]=1;a[i+j];(i
4、,j为整型变量)下标的值不要超过数组的范围。注意一维数组例5.2-1#includevoidmain(){inta=1,c=2,b[5],i;printf("%p,%p,%p",b,&a,&c);/*打印数组b、变量a和c的首地址*/for(i=0;i<=11;i++)/*让下标值越界访问数组的元素*/{b[i]=i;printf("%d",b[i]);}printf("a=%d,c=%d",a,c);}初始化初始化方式在定义数组时,为数组元素赋初值(在编译阶段使之得到
5、初值)inta[5]={1,2,3,4,5};等价于:a[0]=1;a[1]=2;..a[4]=5;说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值当全部数组元素赋初值时,可不指定数组长度如inta[5]={6,2,3};等价于:a[0]=6;a[1]=2;a[2]=3;a[3]=0;a[4]=0;staticinta[5];等价于:a[0]=0;a[1]=0;a[2]=0;a[3]=0;a[4]=0;只给部分数组元素赋初值inta[]={1,2,3,4,5,6
6、};编译系统根据初值个数确定数组的大小输入和输出C语言规定,对数组的使用只能逐个引用数组元素,不能一次引用整个数组。同样,对数组的输入和输出也是依次对每个元素进行的。例输入10个数,并将它们输出。printf("pleaseenterthedata:");for(i=0;i<10;i++)scanf("%d",&array[i]);printf("outputthedata:");for(i=0;i<10;i++)printf("%d",array[i]);printf("");}输入输
7、出定义printf("min=%d",min);}#includevoidmain(){inti,min,x[10];printf("enterdata:");for(i=0;i<10;i++)scanf("%d",&x[i]);min=x[0];for(i=1;i<10;i++)if(x[i]8、较(循环)若x[i]intmain(){inti,min,x[10],no;printf("enterdata:");for(i=0;i<10;i++)scanf("%d",&x[i]);min=x[0];for(i=1;i<10;i++)if(x[i]