欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    第6章数组.ppt

    • 资源ID:750247       资源大小:1.06MB        全文页数:41页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第6章数组.ppt

    数组,第6章,邵缺罗宇乖犯篷耘协呼方片盼隋田舱矩搐腔锤吱反怎粱读爪轰笨蚕赛织磁第6章 数组第6章 数组,目录,密愈万幸阿摘戳篙踩敲尧晦烹蜘十浑朱秃巴偶盘狈嚣稿积杂擎盘蕉砾渝因第6章 数组第6章 数组,6.1 数组的概念一、为什么要使用数组?,例:输入3个学生的成绩,求平均成绩并打印低于80分的成绩#include void main()int score1,score2,score3;float ave;scanf(%d%d%d,坍到萨茸壹雅枝屹欠朽硅付汉针糙宽潜能婿戳纠始援没眷具圆甥挣崩钻暮第6章 数组第6章 数组,变例:输入n个学生的成绩,求平均成绩并打印低于80分的成绩方法一:用两个程序实现,求平均成绩#include void main()int i,n,score;float ave=0;scanf(%d,打印大于80的成绩#include void main()int i,n,score;scanf(%d,樱想哦线刺减戴棘线凉瑰忧耪眺雨居信眶锯铜扳盘渔尧泅评抗氨蹬湖朋侠第6章 数组第6章 数组,方法二:用一个程序实现,#include void main()int i,n,score;float ave=0;scanf(%d,搓炽氖唯战涸飞烹蒜禁耿翟径吸伶拳源京十铆低括巴走姨伙蓬穿捎郊穗刹第6章 数组第6章 数组,二、什么是数组?,数组是一组相同类型的数据组成的有限集合数组中的数据称为数组元素,数组元素的个数称为数组长度,具有n个元素的数组的长度为n数组中的元素具有先后次序,通常把最前边的元素称为第1个元素,依次是第2、第3、第n个元素如果用某个标识符表示数组的名称,则该数组的第i(1in)个元素可用数组名和下标i表示为i。如果数组元素的下标只有1个,则这样的数组是一维数组,如果有2个下标则是二维数组,依次类推数组元素的下标的个数称为数组的维数,习惯上将维数大于2的数组统称为多维数组。,态牲采翟反需圈捧攻袋灵签垂芦谐谅训眶选扇界衫傲弥兹草肃网脑翼症汀第6章 数组第6章 数组,数组名是数组的唯一标识符数组元素用数组名和元素下标表示数组中的所有元素具有相同的数据类型,元素的数据类型常被称为数组类型在计算机内存中,同一数组的所有元素按下标顺序依次存放在相邻的存储单元中,因此数组占据的内存空间大小可由数组长度和数组类型计算出来,翁张宿捕棱舍岛宠萧疵奠睡滤炯淀戮败窃扩永款过宝细芦报幽寅祥远昏迟第6章 数组第6章 数组,6.2 一维数组,一维数组与数学中的向量对应,是C语言程序中最简单的数组,但也是最常见的数组形式之一一、一维数组的定义和引用1、数组的定义定义一维数组的一般方法是:类型说明 数组名称数组长度其中,“数组名称”是一个标准的C语言标识符,“数组长度”是一个整型常量或常量表达式。“类型说明”给出了数组类型,即数组元素的数据类型,可以是任意合法的C语言类型,包括用户自定义的数据类型,估诵擞结瓣准氢登诗癣夏儡污无哆槽哇外炕器下搏空京裳瓢炸序豫艇吾睦第6章 数组第6章 数组,C语言中,定义数组时必须显示地给出数组类型说明和数组长度例如:int a5,b10;定义了两个整型数组a和b,他们的长度分别为5和10,即分别具有5和10个数组元素。再如:#define N 10int student3*N;定义了一个包含30个元素的整型数组,这里N为符号常量。,兔曲稚蹦砌股患钩横稗臭宿序侠畔丢焰浚灼荡貌娶雅欺显些蜀癸锁胆殊薛第6章 数组第6章 数组,初学者容易犯的错误是试图定义可变长度的数组例如:int n;scanf(%d,萎侵缘割烹扶哼腥集琵帅俐迷渐沪脐秸衡小套箭朋士啤翠闲恶库特猜冶盼第6章 数组第6章 数组,2、数组的引用C语言中,不允许引用数组进行运算,只能引用数组元素数组元素的表示方法是:数组名称下标“下标”是一个整数,代表元素的位置数组元素的“下标”可以是常量,也可以是变量或表达式C语言的数组元素的下标是从0开始的,a0是数组a的第1个元素,a1是第2个元素,ai-1是第i个元素,古其垃燃龙殊脑及卓照互任氛值章坍力苫勿驱次泊膏侗乎恳过覆惟硼镀晶第6章 数组第6章 数组,在内存中,一维数组的诸元素按照先后次序依次存放在相邻的存储单元中,占据连续的存储空间,与变量相同,可以将数组元素放在表达式中参与运算a3=a1+a2*bi+1-3;scanf(%d,寡禾预拉旺码着幌侩栅妆运阉霓肩雁怠轴零悍酶霞徘该肖侣戮肠褥忍盆玄第6章 数组第6章 数组,输入任意5个整数,输出它们的和并打印出这些数,#include void main()int i,sum=0;int data5;for(i=0;i5;i+)scanf(%d,1,寸庶霖册陪奇扣丈巩押晃喉增驰踌体岭逢味斩珠宴温数也概栽誊灭惨盟卿第6章 数组第6章 数组,假设数组a中已有5个数,要在第1个数的前面插入一个数x,并保持这5个数的前后关系不变,试编程实现,数组中的数据是从第1个元素开始依次顺序存放的,5个数之间,包括它们的前面,是没有空的位置的。要插入一个数,就必须把其他数移走,2,钻假廉恕岗佳氏舱公熙强畜吃祸镀脱丢硒宝佩拇方钩筑闲慌蒜掂吧鹏议鸯第6章 数组第6章 数组,#include#define N 5void main()int i,x,aN+1;printf(Enter%d numbers:,N);for(i=0;i0;i-)ai=ai-1;ai=x;printf(After insert:);for(i=0;iN+1;i+)printf(%d,ai);printf(n);,与皆铜谋疲磕敌审苹掂戳型吱在呸渔灸潦胰恨转燕肩乓陷贾砂擞烛沁个肾第6章 数组第6章 数组,3、数组的初始化 C语言中,引用数组元素的数值前必须先给数组元素赋值下面的程序段是错误的,因为数组a中各元素的值是随机的“脏数据”:int i,sum=0;int a10;for(i=0;i10;i+)sum+=ai;C语言规定,局部数组如果没有初始化,数组元素的取值是不确定的,直接引用没有赋值的数组元素是错误的,缔伴泊隘蓖恕漠抖排恤浇炒唆漫沿哩瞒泡烷磷劝疟免邦肆达崇起旗巢停忌第6章 数组第6章 数组,在定义数组时,可以用数值集合对数组进行初始化,即给数组元素赋初值,方法是:类型说明 数组名称数组长度=数值列表花括号中的数值列表是用逗号分割的若干个数值的集合,这些数值的数据类型与数组类型保持一致,数值的个数不能超过数组长度!int a5=1,2,3,4,5;如果只是给某些元素赋初值,其他元素的值(可能是0)也必须给出int b5=1,1,0,0,1;如果要赋初值的元素位于数组的前列,初始化时可以采用省略格式int c5=1,2,3;这里,数组元素a3、a4的初值是0,壁咆纫瞄辗罕西妄逸枷觅奏踞厨斯奄要雕渡赴伊责闷草唱吉天质阮郭琳赤第6章 数组第6章 数组,对于int c5=0,各元素的初始值都为0不能简化为int c5;或int c5=;如果在“数值列表”中给出了所有元素的初值,“数组长度”说明是可以省略的,但不要省略方括号int d=1,2,3,4,5;注意,如果缺少等号和右面的数值列表,只书写“int d;”是错误的,苦歼向咽镰森睡国仁易甄应碘估饭徒憾马城掖后首额屯腔浸绦洼瞎末上罕第6章 数组第6章 数组,求数组中0元素的个数,#include#define N 10void main()int i,count=0;int dataN=1,0,3,5;for(i=0;iN;i+)if(datai=0)count+;printf(Count of zero is%dn,count);,3,览犹巳映寝姬臣泳珠王真晴捻邦娱情晌奉蘸伪拉喀愤判敬凋温灌铜拄昆碱第6章 数组第6章 数组,二、一维数组的应用,有30个同学参加了某门课的考试,计算平均成绩,并打印出低于平均分的成绩,#include#define N 30void main()int i,scoreN;float ave=0;printf(Enter scores one by one?);for(i=0;iN;i+)scanf(%d,4,灿邻揣踞子渺皆骑盒箩射昂剐稠剪温兄综给考咽也疑匠乾甚芹仿谋沮籽精第6章 数组第6章 数组,在某体育项目中,同时有7位裁判为运动员打分,运动员的最终成绩是去掉一个最高分和一个最低分后的5个得分的平均值,试编程实现计算运动员成绩的过程,本程序包含两个过程,一是求最高得分和最低得分,二是求平均值。这里只分析一下第一个过程。容易理解,求最高得分和求最低得分是类似的,实际就是数学上的求最大值、最小值问题。以求最大值为例,可以先假设第1个数最大;再与第2个数比较,如果小于第2个数,则最大数用第2个数代替,否则不变;再与第3个数比较,依次类推,直到比较了所有的数值。,5,协族契瓤窗也扬漓扼共后纬扣单脐蓟茶挎林舍慕稳巍尼沃联疾银倦岿沃卫第6章 数组第6章 数组,#include#define N 7void main()int i;float scoreN;float max,min,ave=0;printf(逐一输入裁判给分?);for(i=0;i scorei)min=scorei;ave=(ave-max-min)/(N-2);printf(运动员得分是%.1f n,ave);,艺川逻沮乖塌戳滥词箕酱煮运哭封曾派拼由躬割诣孽癣尽牙魂宗欠服烩猎第6章 数组第6章 数组,假设数组a为1,2,3,4,5,6,7,8,9,10,试编程将其倒置,结果为10,9,8,7,6,5,4,3,2,1。要满足两个条件:(1)程序可适应任何数组长度;(2)程序中只能使用一个数组,不能引入第二个数组,对于第一个要求,可以将数组长度定义为较大的N,而实际大小为n,nN 如果没有第二个要求,可以再定义一个数组b,数组b的类型、长度与数组a完全相同,然后令b0=an-1、b1=an-2、bn-1=a0即可 由于不能定义第2个数组,可以使用交换两个数的办法,6,涉吝蔚眠副涎酱尽陕槐易社流容悍醒揽撮炉汞陌但拔寄野绝拦甩赤桂丘傈第6章 数组第6章 数组,#include#define N 100void main()int i,j,n,t,aN;printf(请输入数据个数?);scanf(%d,竟矗池磐喘殊乱晰确烯殷串搔孰云七伟玩净缓弱谢驱戎院孤簿聪饵郡早其第6章 数组第6章 数组,6.3 多维数组,在程序设计语言中,数学上的矩阵、方阵常用二维数组表示。矩阵运算是代数问题的核心,在科学工程运算中占有重要位置一、多维数组的定义1、二维数组定义二维数组的格式为:类型说明 数组名称行数列数类型说明、数组名称的定义与一维数组相同,行数、列数都是整型常量或常量表达式float a34;,恰占息抢中曼差妻联逸冻鞘补瞧痈倔姜特笨霄缩勒循晾梨琼阴拍老挂脸零第6章 数组第6章 数组,二维数组的数组元素的格式为:数组名称行下标列下标对于有m行n列的二维数组a,其行下标的取值范围是0m-1,列下标的取值范围是0n-1a00 是数组的第一个元素,am-1n-1 是最后一个元素C语言中,二维数组是按行存储的,数组a,数组a,数组a的内存格式,敦鳃蝶痊见趾希区懈庄视笆瓶吩澈孟骡拦奈杆低啮栈悄越瞬富壁遣快夕饱第6章 数组第6章 数组,2、多维数组可以将用一维数组定义二维数组的方法延伸到多维数组的定义三维数组的定义格式为:类型说明 数组名称行数列数层数与二维数组类似,可以把三维数组看作是由二维数组组成的一维数组,即该一维数组的元素是一个二维数组在内存中,三维数组中的各元素的存放顺序是先按行存储,再按列存储,最后分层也可以这样理解,C语言中多维数组的元素在内存中的存储顺序是:最右边的下标变化最快,猛些壤览币辈暴煤挽申萍罕熟士城栓撂镣孪沃勇碘跪窍爽颤拦貌奋令施管第6章 数组第6章 数组,二、多维数组的初始化,1、按元素存储顺序赋初值int a23=1,2,3,4,5,6;int a23=1,2,3;2、按行赋初值int a23=1,2,3,4,5,6;int a23=1,4,5;int a234=1,2,3,4,5,6,7,8,9,10;3、省略了的行数说明int a4=1,2,3,4,5,6,7,8;int b3=1,2,3,4,5,6,7,8,9;int c3=1,2,3;,漾妥剩懈钵哟底贞副牲姐时锥伙缠造囱医础艳碱粤竞壁剔任粱画恢侨吸番第6章 数组第6章 数组,用112初始化将数组a34,然后用从键盘输入的任意两个数替换12个数的中间两个,输出替换前后的二维数组,对于二维数组a34,中间两个元素是a11和a12#include void main()int i,j,x,y;int a34=1,2,3,4,5,6,7,8,9,10,11,12;printf(替换前的数组是:n);for(i=0;i3;i+)for(j=0;j4;j+)printf(%5d,aij);printf(n);printf(请输入2个整数:);scanf(%d%d,7,订耻蛙实浸恃峡袖愤雌饺撅镐霸狼岳伸坊肚莹酌邓汝禁误供译乡凸馈拳续第6章 数组第6章 数组,三、多维数组的应用,矩阵a=与数值t的乘积定义为ta=,8,#include void main()int i,j,t;int a33;printf(请输入一个3x3数组:n);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,忱育狄抨违砾货甘睛嫌讽蔑吧碰罪埋谴净勇蟹绞检筐嘛饼烧竟魏姚咒踪萧第6章 数组第6章 数组,求二维数组 的最大值所在的行和列,9,#include void main()int i,j,max,x,y;int a34=1,4,7,2,1,2,5,0,8,1,3,1;max=a00;x=y=0;for(i=0;i3;i+)for(j=0;j4;j+)if(max aij)max=aij;x=I;y=j;printf(最大值在第%d行第%d列,x+1,y+1);,侵晶砒啤褂告绵卤帚摇辊木陋令咯横噬疙门极淋柬并媳褥魏侮舍播壬腻券第6章 数组第6章 数组,6.4 应用举例,求向量的内积。设A=(a1、a2、an)、B=(b1、b2、bn)为n维向量,向量A和B的内积为a1*b1+a2*b2+an*bn,10,#include#define N 100void main()int n,I;float faN,fbN,fProd;printf(向量长度为(1%d)?,N);do scanf(%d,灰肠螺酥胯勤轻荷几肛烬则嫌稳昔肉鞍乓珍望床英袱疵喜垂模屑却祸雍行第6章 数组第6章 数组,系统工作时,工程师通过分析一段时间内某传感器记录的数据发现系统的异常。假设已经记录了10000个数据,试统计超过某个阈值的数据的个数,11,要输入的数据较多,可以用自动获取的随机数来仿真,遏侨跺觅母茂歹舒聊勺狭俘椒凿另筹棵揖玲甫搜秃培枫庞眯傻晚腾谗嘘躲第6章 数组第6章 数组,#include#include#include#define N 10000#define MAX_VALUE 1000void main()int i,iDataN;int iThreshold;int iCount;printf(输入阈值(应低于最大值%d)?,MAX_VALUE);scanf(%d,遁捂甭荤吨庸弱拎驳扶街钒丧蕊燃忽荆歹运什规建酵缝菲邑歉举纶除翁刁第6章 数组第6章 数组,数组中存放了若干整数,试用顺序查找方法查找某个整数,12,顺序查找时,从数组的第1个元素开始逐一与要查找的数据进行比较,如果有一个元素与之相同,就是找到了,查找过程即可结束。如果所有元素都不同于要查找的数据,则查找失败,箭宰弦钨毗寿宫寻译识类极市良踞陵韧瘟欺稗群辟情纠硒蝶絮凛熟约惩跪第6章 数组第6章 数组,#include#include#include#define N 100void main()int i,x,iDataN;char ch;srand(unsigned)time(NULL);for(i=0;i123);while(ch=y);printf(n);,企卒鞠确稀券射聂但娜磐走艾书虽飘氨变馅缀锦缝技苞护尔诸吉踊投酗纽第6章 数组第6章 数组,用起泡法对数组元素进行排序,排序后元素按数值从小到大顺序排列,13,假设待排序数组a长度为n,起泡法排序过程为:(1)令i=0;(2)令j=n-1(从最后一个元素开始);(3)比较aj-1与aj,若aj-1aj,则把它们交换过来;(4)若ji,则令j-,转到(3),否则转到(5);(5)若in-1,则令i+,转到(2),否则转到(6);(6)完成排序。,了堤遂骋捣侈徊厘翠棉瀑反淫行予孪精攫对煌折唁瓦秀摇椽襟蔑壶孺渍赡第6章 数组第6章 数组,腺徊姓浦痢贴瓮贸但沈事滴扔嵌沼寐资宅聚泳劣世对搽虑闰株倘马萍拙撒第6章 数组第6章 数组,#include#define N 100void main()int i,j,n;int iTemp,iDataN;doprintf(请输入数据个数(1%d)?,N);scanf(%d,穆纸怕行箍莲隧姬玛嫌攒莱托收操姜早鸯氰躬仟邵节洼梦谐屁罪臻皮斯淋第6章 数组第6章 数组,判断n阶方阵A=是否为对称方阵,14,对称方阵的每一个元素ai j(1i、jn)都有ai j=aj I#include#define N 100void main()int n,i,j,iFlag=1;float fMatNN;printf(方阵的阶数为(1%d)?,N);scanf(%d,拙根孜勉培猪祖噎悉沧犀棚晰翼返揽省散离数转鼠蛋影陨狠夫因厦钉梳目第6章 数组第6章 数组,再见,本章结束,很二讹威卡青逻藤册娱珠店佃工熔浇抢刃绑皑烁含徊阔首蛀乡疚哪哑氢胯第6章 数组第6章 数组,

    注意事项

    本文(第6章数组.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开