资源描述:
《C语言程序设计 第2版 教学课件 作者 李敏第4章 数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章数组C语言程序设计1第四章数组50个学生的成绩怎样存储和处理?一个学生N门课的成绩怎样存储和处理?......数据的特点:具有相同的数据类型。为了方便地使用这些数据,C语言提供了一种构造数据类型:数组。例如:存储学生成绩用实型数组fs[50]其中:fs是数组名。该数组可以存放50个成绩,分别可以表示成:score[0],score[1],…score[49]。这些称为数组元素。2021/10/624.1一维数组4.2二维数组4.3字符数组与字符串本章主要内容2021/10/634.1.1一维数组的定义4.1.2一维数组元
2、素的引用4.1.3一维数组的初始化4.1.4一维数组应用举例4.1一维数组2021/10/64例如:intnum[10];floatb[10],c[5];数据类型:指定数组元素的数据类型数组名:遵循C语言标识符命名规则常量表达式:示数组中有多少个元素,即数组的长度。它可以是整型常量、整型常量表达式或符号常量数据类型数组名[常量表达式];4.1.1一维数组的定义定义格式:2021/10/651.以下数组定义是正确的:#defineN10floata[N],b[N];intnum[10+N];charc[26];2.以下数组定义是
3、不正确的:intarray(10);intn;floatscore[n];doubleb['a'..'d'];charstr[];4.1.1一维数组的定义注意:2021/10/663.数组元素在内存中的存放:在内存为数组开辟连续的存储空间一维数组的数组元素在内存中是按顺序存放的。a[0]a[1]a[2]a[3]a[4]91.534.567.572.084.0低地址高地址a数组4.1.1一维数组的定义2021/10/67格式:说明:下标表达式的值必须是整型表达式。数组名[下标]4.1.2一维数组元素的引用不能引用整个数组,只能逐
4、个引用数组中的元素下标表示该元素在数组中的位置,可以是整型常量或整型表达式。例如:inta[10],b[10];a[3],a[i+j],b[6],b[j+5]a[0]=a[4]+a[2]-b[2*3];2021/10/681.定义数组时用到的“数组名[常量表达式]”和引用数组元素时用到的“数组名[下标]”的区别例如:intnum[5];/*定义数组长度*/t=num[3];/*引用数组num中序号为3的元素。此时3不代表数组长度*/4.1.2一维数组元素的引用说明:2021/10/692.下标从0开始(下界为0),数组的最大下
5、标(上界)是数组长度减1。例如:intnum[10];num[10]=3;/*下标越界*/C编译系统不做越界检查,如果引用的数组元素超出数组范围会破坏其他变量的值。4.1.2一维数组元素的引用2021/10/610[例4-1]一维数组元素的引用。#includevoidmain(){inti,num[10];for(i=0;i<10;i++)num[i]=i+1;for(i=0;i<10;i++)printf("%3d",num[i]);}程序的运行情况:123456789
6、104.1.2一维数组元素的引用2021/10/611格式:类型说明符数组名[常量表达式]={值1,值2,值3,……,值n};例如:intnum[10]={1,2,3,4,5,6,7,8,9,10};4.1.3一维数组的初始化初始化:在定义数组时给数组元素赋初值。注意:对数组元素初始化若写成如下形式:intnum[3];num[3]={10,20,30};是错误的2021/10/6121.在定义数组时,对部分数组元素赋初值例如:inta[5]={1,2,3};系统为其余元素赋02.在定义数组时,对全部数组元素赋初值例如:in
7、ta[5]={0,1,2,3,4};此时可以省略数组长度,例如:inta[]={0,1,2,3,4};3.只能给数组元素逐个赋值,不能给数组整体赋值。intnum[10]={2,2,2,2,2,2,2,2,2,2};而不能这样定义:intnum[10]=2;4.当初值的个数多于数组元素的个数时,编译出错例如:inta[5]={0,1,2,3,4,5};4.1.3一维数组的初始化2021/10/613【例4-2】随机输入10个,输出其中的最大数#includevoidmain(){inti,m,max,num[
8、10];for(i=0;i<10;i++)scanf("%d",&num[i]);max=num[0];m=0;for(i=1;i<10;i++)if(num[i]>max){max=num[i];m=i;}printf(“Themaxnumber:num[%d]=%d”