欢迎来到天天文库
浏览记录
ID:56430788
大小:702.00 KB
页数:73页
时间:2020-06-18
《C语言课件第8章数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章数组C语言程序设计1第8章数组本章重点介绍:8.1一维数组8.2二维数组8.3字符数组2021/8/52输入30个数,然后将它们升序输出。思考:输入30个数,求其中的最大值。scanf(“%d”,&x);i=1;while(i<30){if(max2、维数组例如:inta[10];floatscore[5];“数据类型”:是数组元素的数据类型。“数组名”:遵循C语言标识符规则。“常量表达式”:表示数组中有多少个元素,即数组的长度。它可以是整型常量、整型常量表达式或符号常量。8.1.1一维数组的定义数据类型数组名[常量表达式];2021/8/57以下数组定义是正确的:#defineN10……floatscore1[N],score2[N];intnum[10+N];charc[26];以下数组定义是不正确的:intarray(10);intn;floatscore[n];doubleb['a'..'d'];charstr[];3、8.1.1一维数组的定义(续)2021/8/58数组在内存的存放数组下标从0开始。一维数组的数组元素在内存里按顺序存放。数组名代表数组的首地址,即score的值与score[0]的地址值相同。score[0]score[1]score[2]score[3]score[4]91.534.568.582.084.0低地址高地址score数组2021/8/598.1.2数组元素的引用格式:例如:输入学生成绩for(i=0;i<5;i++)scanf("%f",&score[i]);例如:fib[n]=fib[n-1]+fib[n-2];下标表达式的值必须是整型表达式。数组名[下标表达4、式]2021/8/5108.1.2数组元素的引用(续)说明:①下标从0开始(下界为0),数组的最大下标(上界)是数组长度减1。例如:inta[10];scanf("%d",&a[10]);/*下标越界*/C编译系统不做越界检查,如果引用的数组元素超出数组范围会破坏其他变量的值。2021/8/5118.1.2数组元素的引用(续)②[]是下标运算符,引用数组元素时,根据数组的首地址和下标数,计算出该元素的实际地址,取出该地址的内容进行操作。如引用score[2]:(1)计算2000+2*4=2008(2)取出2008的内容2000H2004H2008H200CH2010Hscore5、[0]score[1]score[2]score[3]score[4]91.534.568.582.084.02021/8/5128.1.3一维数组的初始化初始化:在定义数组时给数组元素赋初值。1.在定义数组时,对全部数组元素赋初值例如:inta[5]={0,1,2,3,4};此时可以省略数组长度,例如:inta[]={0,1,2,3,4};2.在定义数组时,对部分数组元素赋初值例如:inta[5]={1,2,3};系统为其余元素赋0。3.当初值的个数多于数组元素的个数时,编译出错例如:inta[5]={0,1,2,3,4,5};2021/8/5138.1.4一维数组应用举例【6、例8.1】将10个人的成绩输入计算机后按逆序显示。#defineN10main(){inti;floatscore[N];for(i=0;i=0;i--)printf("%6.1f",score[i]);}运行情况如下:6884899234688395838888.083.095.083.068.034.092.089.084.068.02021/8/514【例8.2】用数组求Fibonacci数列前20个数f[0]f[1]f[2]f[3]f[4]f[5]f[19]……...11f[19]0147、52319235#includemain(){inti;intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0)printf("");printf("%12d",f[i]);}})3()2(12)1(1121³+=====--nFFFnFnFnnn2021/8/515例3,判断数字5是否存在于数字序列中,如果存在,输出是第几个数据,不是则输出没有找到。main(){in
2、维数组例如:inta[10];floatscore[5];“数据类型”:是数组元素的数据类型。“数组名”:遵循C语言标识符规则。“常量表达式”:表示数组中有多少个元素,即数组的长度。它可以是整型常量、整型常量表达式或符号常量。8.1.1一维数组的定义数据类型数组名[常量表达式];2021/8/57以下数组定义是正确的:#defineN10……floatscore1[N],score2[N];intnum[10+N];charc[26];以下数组定义是不正确的:intarray(10);intn;floatscore[n];doubleb['a'..'d'];charstr[];
3、8.1.1一维数组的定义(续)2021/8/58数组在内存的存放数组下标从0开始。一维数组的数组元素在内存里按顺序存放。数组名代表数组的首地址,即score的值与score[0]的地址值相同。score[0]score[1]score[2]score[3]score[4]91.534.568.582.084.0低地址高地址score数组2021/8/598.1.2数组元素的引用格式:例如:输入学生成绩for(i=0;i<5;i++)scanf("%f",&score[i]);例如:fib[n]=fib[n-1]+fib[n-2];下标表达式的值必须是整型表达式。数组名[下标表达
4、式]2021/8/5108.1.2数组元素的引用(续)说明:①下标从0开始(下界为0),数组的最大下标(上界)是数组长度减1。例如:inta[10];scanf("%d",&a[10]);/*下标越界*/C编译系统不做越界检查,如果引用的数组元素超出数组范围会破坏其他变量的值。2021/8/5118.1.2数组元素的引用(续)②[]是下标运算符,引用数组元素时,根据数组的首地址和下标数,计算出该元素的实际地址,取出该地址的内容进行操作。如引用score[2]:(1)计算2000+2*4=2008(2)取出2008的内容2000H2004H2008H200CH2010Hscore
5、[0]score[1]score[2]score[3]score[4]91.534.568.582.084.02021/8/5128.1.3一维数组的初始化初始化:在定义数组时给数组元素赋初值。1.在定义数组时,对全部数组元素赋初值例如:inta[5]={0,1,2,3,4};此时可以省略数组长度,例如:inta[]={0,1,2,3,4};2.在定义数组时,对部分数组元素赋初值例如:inta[5]={1,2,3};系统为其余元素赋0。3.当初值的个数多于数组元素的个数时,编译出错例如:inta[5]={0,1,2,3,4,5};2021/8/5138.1.4一维数组应用举例【
6、例8.1】将10个人的成绩输入计算机后按逆序显示。#defineN10main(){inti;floatscore[N];for(i=0;i=0;i--)printf("%6.1f",score[i]);}运行情况如下:6884899234688395838888.083.095.083.068.034.092.089.084.068.02021/8/514【例8.2】用数组求Fibonacci数列前20个数f[0]f[1]f[2]f[3]f[4]f[5]f[19]……...11f[19]014
7、52319235#includemain(){inti;intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0)printf("");printf("%12d",f[i]);}})3()2(12)1(1121³+=====--nFFFnFnFnnn2021/8/515例3,判断数字5是否存在于数字序列中,如果存在,输出是第几个数据,不是则输出没有找到。main(){in
此文档下载收益归作者所有