[理学]c第六章数组

[理学]c第六章数组

ID:39984196

大小:264.50 KB

页数:47页

时间:2019-07-16

[理学]c第六章数组_第1页
[理学]c第六章数组_第2页
[理学]c第六章数组_第3页
[理学]c第六章数组_第4页
[理学]c第六章数组_第5页
资源描述:

《[理学]c第六章数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C程序设计第6章数组问题:给一组数排序,这组数该如何存放????这些数据如何存放才便于排序82945637617188888888881111111111111118888888888这便是本章所要解决的问题C语言为这些数据,提供了一种构造数据类型:数组。所谓数组就是一组具有相同数据类型的数据的有序集合。一个班学生的学习成绩一行文字一个矩阵这些数据的特点是:1.具有相同的数据类型2.使用过程中需要保留原始数据一组固定数量的同类型相关数据的集合。是一种用户自定义的构造型数据类型。数组是一组具有相同名字,不同下标的下标变量。数组中各元素在内存中占据连续的存储单元。数组必须定

2、义后使用。数组名即为该数组的地址。数组本章要点掌握一维、二维数组的定义和引用方法掌握一维、二维数组的存储结构以及初始化方法。掌握字符数组、字符串以及字符串数组的特点。掌握有关一维数组的有关算法。一维数组二维数组数组定义元素引用初始化程序举例第6章数组6.1一维数组一维数组的定义一维数组元素的引用一维数组的初始化一维数组程序举例1.一维数组的定义定义格式:数据类型数组名[常量表达式];如:inta[10];1)定义一个数组,名为a,有十个元素,元素名为a[0]、a[1]...a[9],且都是整型量。2)数组名a表示该数组中第一个元素a[0]的地址。数组名是地址常量。3)经

3、过定义的数组,编译后,会分配到一段连续的内存单元。其首地址即数组名a。4)数组定义后,编译时无越界保护。5)数组定义中的常量表达式不能是变量。intn;scanf(“%d”,&n);inta[n];是不合法的。6)同类型数组可一起定义,用逗号隔开。如:inta[10],b[20];inti,c[8];7)#defineM10inta[M];a,a[0]a[1]a[2]a[9]2.一维数组元素的引用数组不能以整体形式参加数据处理,参加数据处理的只能是数组元素。引用数组元素的方法:下标法,即用数组名及其下标表示数组元素。voidmain(){chara[20];inti;f

4、or(i=0;i<=14;i++)scanf(“%c”,&a[i]);printf(“”);for(i=0;i<=14;i++)printf(“%c”,a[i]);}运行结果:Iamastudent.Iamastudent.voidmain(){floatsum=0,aver;floata[5];inti;for(i=0;i<5;i++){scanf(“%f”,&a[i]);sum+=a[i];}aver=sum/5.;printf(“av=%f”,aver);}3.一维数组的初始化在定义数组时对数组元素赋予初值。例:inta[10]={2,4,6,8,

5、10,12,14,16,18,20};chara[5]={‘C’,‘h’,‘i’,‘n’,‘a’};charc[6]={“China”};或charc[6]=“China”;也可inta[]={2,4,6,8,10,12,14,16,18,20};charc[]=“China”;通过赋初值定义数组的大小inta[10]={1};intb[2]={1,2,3};不够,其它自动赋为0,多余则出错4.程序举例例:输入10个数,求出其中最大值例:将数组的各个元素倒过来存储。例:用数组计算输出前40项Fibonacci序列#includevoidmain(){i

6、nti,max,a[10];printf("input10numbers:");for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<10;i++)if(a[i]>max)max=a[i];printf("maximum=%d",max);}例:输入10个数,求出其中最大值如何求出最大值的下标?例:将数组的各个元素倒过来存储。#includevoidmain(){inti,t,a[11];printf("input10numbers:");for(i=1;i<11;i++)scanf("

7、%d",&a[i]);for(i=1;i<6;i++){t=a[i];a[i]=a[11-i];a[11-i]=t;}for(i=1;i<11;i++)printf("%d",a[i]);}例:用数组计算输出前40项Fibonacci序列voidmain(){doublea[40];intk;a[0]=1;a[1]=1;for(k=2;k<40;k++)a[k]=a[k-1]+a[k-2];for(k=0;k<40;k++){if(k%5==0)printf(“”);printf(“%10.0f”,a[k]);}}6.2二维数组的定义

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

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

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