第4章数组(C语言程序设计)ppt课件.ppt

第4章数组(C语言程序设计)ppt课件.ppt

ID:58700624

大小:414.00 KB

页数:49页

时间:2020-10-04

第4章数组(C语言程序设计)ppt课件.ppt_第1页
第4章数组(C语言程序设计)ppt课件.ppt_第2页
第4章数组(C语言程序设计)ppt课件.ppt_第3页
第4章数组(C语言程序设计)ppt课件.ppt_第4页
第4章数组(C语言程序设计)ppt课件.ppt_第5页
资源描述:

《第4章数组(C语言程序设计)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章数组问题如果用一个变量去存储若干个数据,怎么定义这个变量?声明数组变量数组中每一个数据叫一个元素每个元素在数组中的位置叫下标在数组中元素的个数叫数组长度声明:存储类型数据类型数组名[长度]例如:intage[40];floatf[6*6];数组元素:age[0],age[1],age[2],…,age[39]f[0],f[1],…f[35](元素的引用)例如:floatf,a[10];数组元素:a[0],a[1],…a[9]for(i=0,i<=9;i++)scanf(“%f”,&a[i])数

2、组元素引用:数组名[下标表达式]一维数组声明和引用一维数组的存储形式例如:inta[10];a[0]a[1]…a[9]&a[0]&a[1]&a[9]…数组名代表变量的首地址100a100c100e10101012首地址【例4.1】读入一个一维数组,并按相反顺序输出各元素。main(){/*声明数组*/inti,a[10];/*逐个输入数组a的元素*/for(i=0;i<=9;i++)scanf("%d",&a[i]);/*逆序输出数组a的各元素*/for(i=9;i>=0;i--)printf("%

3、-2d",a[i]);}运行结果为:0123456789↙9876543210for(i=0;i<=9;i++)printf(“%-2d”,a[9-i]);4.1.4一维数组的初始化初始化就是数组元素的值在定义的同时得到格式:[存储类型]数据类型数组名[常量表达式]={数据1,数据2,……,数据n};花括号中的值是初始值,用逗号分隔开。例如:inta[10]={0,1,2,3,4,5,6,7,8,9};(2)可以只给一部分元素赋初值。例如:inta[10]={3,1,7,3,4};定义时没有赋初值,

4、则对于存储在固定存储区的数组各元素自动数组若在赋值0,字符串数组的各元素自动赋值空字符,存储在动态存储区的数组各元素的值不确定。(3)在对全部数组元素赋初值时,可以不指定数组的长度。inta[]={0,1,2,3,4};4.1.5一维数组程序设计举例【例4.2】求10个数中最大值及其所在的位置。分析:(1)设数组含有10元素,下标为0~9。(2)定义变量max存最大值,首先假设a[0]为最大值,则max=a[0]。(3)从a[1]开始逐个元素与max比较,如果a[i]>max,则max被赋予与a[i

5、]相同的值,并用变量position记录下其最大值位置。就是下标main(){inta[10];inti,max,position;for(i=0;i<10;i++)scanf("%d",&a[i]);position=0;/*设第一个元素为最大值,赋给max*/max=a[0];for(i=1;i<10;i++)if(a[i]>max)/*若找到比当前最大值max还大的数*/{max=a[i];position=i;}printf("max=%dposition=%d",max,positio

6、n);}521382794936010↙max=49position=6【例4.3】求fibonacci数列的前20项。main(){inti,f[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]);}}11235813213455891442333776109871597258441816765【例4.4】使用冒泡法将10个数据从小到大排

7、序。分析:将10个数按从小到大分别存在a[1]…a[10]中假设数组中有10个元素,存放在a[1]~a[10]找数开始:方法是:将相邻两个数a[i]和a[i+1]比较,将大数调到后头,小数调到前头;第一轮比较下来,将最大值放入a[10]中剩余的从a[1]到a[9]未排序的数再两两比较,大数调到后头,第二轮比较下来,次大数放入了a[9];问:找第一个数比较多少次?每个数都相同吗???526413交换不交换交换交换交换256413256413254613254163254136最大值P94#includ

8、emain(){inta[11],i,j,t;printf("input10numbers:");for(i=1;i<11;i++)scanf("%d",&a[i]);input10numbers:521382794936010↙025891013273649for(i=1;i<10;i++)for(j=1;j<=10-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=1;i<=10

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。