第c语言学习资料(积极推荐)6章(1).ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:46 大小:2.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第c语言学习资料(积极推荐)6章(1).ppt

第c语言学习资料(积极推荐)6章(1).ppt

预览

免费试读已结束,剩余 36 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第6章数组学习目的1.掌握一维数组的定义、初始化和数组元素的使用2.掌握二维数组的定义、初始化和数组元素的使用3.能进行基本的数组程序的设计一维数组仅有基本类型(整型、字符型、实型),很难满足较复杂问题的编程需要。在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来,这些按序排列起来的相同类型数据元素的集合称为数组。数组属于构造数据类型一个数组是由多个数组元素构成的,这些数组元素可以是基本数据类型或构造类型。按照数组元素的类型不同,数组可以分为数值数组、字符数组(字符串)、指针数组、结构数组等。例如:一组数据(4,5,8,2,10,23,6,7,17,9)6.1一维数组1.一维数组的定义注意:(1)数组名不能与其他变量名重名。数组名后是用方括号括起来的常量表达式,不能用圆括号。(2)C语言的数组元素下标从0开始。则数组a的5个元素为a[0],a[1],a[2],a[3],a[4],而不包含a[5]。在C语言中,不对数组作边界检查,如果程序中出现了下标越界,可能会造成程序运行结果的错误。因此要注意下标不能过界。(3)C语言不允许对数组的长度作动态定义,即数组长度不能是变量。(4)同一数组的数组元素,其类型必须相同。例如:inta[10];intb[2+3];floatc[20];charch[16];charch1[20],ch2[20],ch3[20];#defineMAX10intarr[MAX];一维数组的数学模型表示法例如:有如下定义:floatarr[5]={1.5,2.5,3.5,4.5,5.5}例如:#include<stdio.h>voidmain(){intn=5;inta[n];…}是错误的。(4)可以一次同时定义多个同类型数组。例如:inta[5],b[l0];2.一维数组的引用数组元素的一般表示形式为:数组名[下标]下标通常为整型常量或整型表达式,若为小数,系统自动取整。例如:a[5],a[i+j],a[2*2]等都是合法的数组元素。数组必须先定义,后使用。使用数值型数组时,要逐个引用数组元素而不能一次引用整个数组。例如:for(i=0;i<5;i++)printf("%d",a[i]);下面的写法是错误的:printf("%d",a);【例6-1】从键盘输入10个整数,找出其中的最大数并输出。#include<stdio.h>voidmain(){inta[10],i,max;for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<10;i++)if(max<a[i])max=a[i];printf("MAX=%d",max);}3.一维数组初始化一般可以采用三种方式对数组元素赋值:一是用赋值语句:例如:inta[5];a[0]=1;a[1]=3;a[2]=5;a[3]=7;a[4]=9二是通过输入函数例如:inta[5];for(i=0;i<5;i++)scanf(“%d”,&a[i]);三是在定义数组时,对数组元素赋以初值,即为数组的初始化。(初始化是在编译时进行的,故不占用运行时间。)初始化分为以下几种情况:(1)对数组的全部元素进行赋初值。例如:inta[5]={1,3,5,7,9};即在定义数组时用一对花括号将要赋给数组各元素的值括起来,各值之间用逗号间隔,按其顺序赋给该数组。经定义和初始化后,a[0]=1,a[1]=3,a[2]=5,a[3]=7,a[4]=9。4.一维数组程序举例【例6-3】从键盘输入10个整数,求出它们的平均值及比平均值大的数。#include<stdio.h>voidmain(){inti,x[10];floatsum=0,aver=0.0;for(i=0;i<10;i++){scanf("%d",&x[i]);sum=sum+x[i];}aver=sum/10.0;printf("平均值为:%10.2f\n",aver);printf("比平均值大的数有:\n");for(i=0;i<10;i++){if(x[i]>aver)printf("x[%d]=%d\n",i,x[i]);}}【例6-4】用冒泡排序法对10个整数排序(由小到大)。冒泡排序法:(1)初始状态有序区有0个数据无序区有10个数据(2)终止状态有序区有9个数据无序区有1个数据(3)取放办法333源程序:#include<stdio.h>voidmain(){intx[10];inti,j,s;printf("输入l0个整数:\n");for(i=0;i