资源描述:
《一维数组与排序算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九讲一维数组与排序算法教学目的理解数组与数组元素概念,掌握一维数组的定义与引用掌握常用排序算法讲授提纲一、数组与数组元素概念二、一维数组的定义与引用三、常用排序算法重点难点一、数组与数组元素概念已经学习的C语言基本数据类型:整型(short、int、long)实型(float、double、longdouble)字符型(char)空类型(void)等待学习C语言数据类型:枚举类型(属于基本类型)构造类型:数组、结构体、共同体指针类型所谓构造类型:由已存在的数据类型构造的(或自定义的)组合(或复合)数据类型。一、数组与数组元素概念数组又称下标变量,是一组同类型的变量的有序的集合。数组中
2、的每个变量称为数组的一个元素。可以用数组名称与数组的下标惟一地确定一个数组元素。例如:一个班有30个学生,用s1,s2,s3,‥,s30来表示30个学生的某科成绩,其中,s15就表示第15个学生的成绩。S是数组名,下标表示序号。在C语言中用s[15]表示s15,则s[15]为数组s的一个元素。数组包括一维数组和多维数组。在C语言中,数组变量的下标必须写在方括号中!!二、一维数组的定义与引用一维数组的定义类型说明数组名[常量表达式];可以是任何一种基本数据类型或构造类型。指定数组中所有元素的共同数据类型。空格[]数组名的命名规则同简单变量的命名规则指定数组元素的个数,又称数组长度。可以是
3、直接常量或符号常量。必须是方括号!至少一个空格!二、一维数组的定义与引用一维数组的定义例如:inta[10];/*定义10个整型变量*/floatb[8];/*定义8个单精度变量*/charc[12];/*定义12个字符变量*/a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]b[0]b[1]b[2]b[3]b[4]b[5]b[6]b[7]c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]c[10]c[11]4字节4字节1字节二、一维数组的定义与引用一维数组的引用数组是一种变量,必须先定义后使用,而且只能引用数组元素,而不是整
4、个数组。数组元素引用格式是:数组名[下标]定义时使用的名称数值表达式注意数组元素下标从0开始。最后一个元素的下标是数组长度-1可以像使用简单变量一样,为数组的某一元素进行赋值,或者引用数组中某一元素中的值。数组元素的名称二、一维数组的定义与引用一维数组的引用[例1]:定义一个名称为a并含有10个元素的整型数组,然后依次把1,2,3,…,10这10个数存入元素a[0],a[1],a[2],…,[9],最后求出这10个数的和。#includemain(){inta[10],s;a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;a[5]=6;a[6]=7
5、;a[7]=8;a[8]=9;a[9]=10;s=a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9];printf(“a[0]+a[1]+…+a[9]=%d”,s);}数组与循环结合起来,可以有效地处理批量数据!数组长度#includemain(){inta[10],i,s;for(i=0;i<=9;i++)a[i]=i+1;s=0;for(i=0;i<=9;i++)s=s+a[i];printf(“a[0]+a[1]+…+a[9]=%d”,s);}数组元素下标二、一维数组的定义与引用一维数组初始化可以在定义数组变量时给
6、数组的元素赋初值。格式:类型说明数组名[数组长度]={常量1,常量2,…,};1.允许初值个数与数组元素1-1应如:inta[5]={0,1,2,3,4};/*0存于a[0],1存于a[1],…,4存于a[4]*/2.或者只给一部分元素赋初值如:inta[5]={0,1,2};/*只对前三个元素赋值,其余的为0*/3.元素值全为0时的赋值如:inta[5]={0};/*等价于inta[5]={0,0,0,0,0};*/4.缺省数组长度对全部元素赋值如:inta[]={0,1,2,3,4};/*定义数组a,并对其中的元素赋值,初值个数决定数组长度*/{}二、一维数组的定义与引用[例2]利
7、用数组求集合{23,56,83,52,100,88,78,25,34}的最大值。“擂台法”也适用于求最小值擂台2356835210088782534求最值的“擂台法”#includemain(){inta[]={23,56,83,52,100,88,78,25,34},max,i;max=a[0];/*擂台初值*/for(i=1,i<=8;i++)/*循环*/if(a[i]>max)max=a[i];/*让每个数与擂台上的数比