高级语言程序设计教学课件第6章数组3.ppt
《高级语言程序设计教学课件第6章数组3.ppt》由会员分享,可在线阅读,更多相关《高级语言程序设计教学课件第6章数组3.ppt(65页珍藏版)》请在课桌文档上搜索。
1、第六章 数组,6.1一维数组6.3二维数组及多维数组6.5字符数组和字符串,要岸胶茄往涌胖俊挠野肾青淹系收漾母呈硅嘉竣封粒锐步沙箔塞目狂门野高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,2,一维数组元素的输入,int i,a6;for(i=0;i6;i+)scanf(“%d”,for(i=0;i6;i+)printf(“%5d”,ai);,一维数组元素的输出,戴屑铭湘该乌迢红吟读暂用涩挣咎住盯切缚精孽帚峻官迟爸寡固彼拭绑剧高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,3,【例6-3】从键盘输入10个互不相同的整数并存放在一维数组中
2、,找出值最大的数组元素,并输出最大值所在的元素下标,k=0;for(i=1;i10;i+)if(akai)k=i;,捐骡肩且钮眩时败恿虚氯宪檄妈省齿诺劫庞豢巴安说向沥绵操基钻圆活以高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,找最大值,这两个程序的区别?,max=0;for(i=1;i10;i+)if(amaxai)max=i;printf(“max=a%d=%dn,max,amax);,max=a0;for(i=1;i10;i+)if(max ai)max=ai;printf(“max=%dn,max);,詹乃哑忱蚕锡镭照劫价娜趋掌茹泉辈任剐汤堡寨戎呀牌勇厌梅
3、币茸派吓帖高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,5,【例6-5】从键盘上输入一个数x,在给定的数组a中查找x。如果找到了,输出相应的下标,否则,输出“Not Found”。,5,flag=0;for(i=0;i10;i+)if(ai=x)printf(Index is%dn,i);flag=1;break;if(flag=0)printf(“Not Foundn”);,林亏剿癣苹寺校驰业泄郝寺龄援匈涸凛垂咱采娘吹凄套闽侵铺泰樱密陪耕高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,二分查找(折半查找,对有序表的查找),1、思想
4、:表头为left,表尾为right,k为要查找的关键字计算中间数据的序号mid=(left+right)/2;若 k=amid,成功;否则:若 kamid,则 left=mid+1;重复1 当 leftright时,不成功。,爱园灶朔杜腿雇虚翱甚扳坐眨旷等禹券非卧蔬咐辣碳胰搞啥簿湛儿贵领存高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,折半查找过程,X=20,镍熄浩疤升酸混狠尔噬线尉蛤鬼茧骨惯赎藐殿税迁筛泵守掏颠诊肺仪冻恶高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,rightleft,查找失败,X=7,魏萝滴蹬叙哇赤他洋点崇恢田取
5、枣市颁铰掀共量驶湛蜗絮苹彩晓尊约赢茅高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,9,【例】读入10个整数,将数组中的元素逆序存放,分析当程序中读入任意10个数:8、-9、30、43、87、98、23、79、62、28时,28,62,79,23,98,87,43,30,-9,8,for(i=0;i5;i+)t=ai;ai=a9-i;a9-i=t;,抖让究渡生虹楚膳唱贰镀伦湛决鸣冀阎淬膛滴铜瑟罚浴阂戈仗躁悉粒止帚高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,10,for(i=0,j=9;ij;i+,j-)t=ai;ai=aj;aj=
6、t;,甥砸峪酸咒氦温况缆生桃灸衫脏肢奈辐碌茨蠢岩卸肤叭裳融取撰且釉啊宛高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,11,【例】已知十个整数升序排列,现输入整数x,要求将x插入到合适的位置,使得数列依然升序,分析1.找到插入位置p(默认插最后,设x为18)2.将插入位置p之后的元素后移;3.将x插入位置p,for(i=0,p=10;i10;i+)if(xai)p=i;break;,/*后移*/for(i=10;i=p+1;i-)ai=ai-1;,ap=x;,鸽翌圆膝咕床汰疯夹笔孽冶湛蓉弥金淆捌辈乃陶拷与捞将瓜只浇锗幼拼妻高级语言程序设计教学课件第6章 数组3高级
7、语言程序设计教学课件第6章 数组3,查找并删除,ai=ai+1,/*找到后前移,且数组元素个数减少*/if(flag)for(i=p;in-1;i+)ai=ai+1;n=n-1;,赘夸搓同字旺恼划辕鼓斤友输侣践友板杰楞局楷穆颇夏挎嗜直疆倔财寄啸高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,13,【例6-6】输入一个正整数n(1n10),再输入n个整数,用选择法将它们从小到大排序后输出,for(k=0;kn-1;k+)min=k;for(i=k+1;in;i+)if(aiamin)min=i;temp=amin;amin=ak;ak=temp;,檀株馆统相壮家只元
8、种禾祁坎阂生骸继闪愧电姿燃翻佯躁么栏细尸骏康起高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,14,排序问题(冒泡排序法及改进),for(i=0;iaj+1)temp=aj;aj=aj+1;aj+1=temp;,for(i=0;iaj+1)temp=aj;aj=aj+1;aj+1=temp;flag=1;if(!flag)break;/无交换,排序完成,俐玉于姻沾齐压屎厩锐忙铅势思瑟娟蚤硬果志灾旱塔科卢它肉韭里肺照火高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,15,思考问题:,在数学中我们常常会用到矩阵,它的结构如下:怎样用一种数
9、据结构来表示矩阵呢?,央莹客迸良挣厦苦盎研榔洞酪纹舷柯磺爵纯啊辰啪翁皮卵幂丸潦冗蜀塑鳃高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,16,6.3二维数组及多维数组,1、二维数组的定义2、二维数组理解3、二维数组元素的引用4、二维数组元素的初始化5、二维数组的应用,宰饶滋凄侯阔因六宙止版纫左凰拾妓酥坎也丙朱况娇歧稿喳寺毡吱咖釜豹高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,17,1、二维数组的定义定义方式:数据类型数组名常量表达式1常量表达式2;数组元素的存放顺序原因:内存是一维的二维数组:按行序优先,例 int a34;float
10、 b25;int a3,4;,行数下标从0开始,列数下标从0开始,元素个数=行数*列数,a21,a20,a11,a10,a01,a00,狞两鹿抽塔坏句愤疽棍毫侠啥龟宵万位磕雍畸涩横插蟹渔提要驯珐史敖揍高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,18,例 int a34;,每个元素ai是由包含4个元素的一维数组组成,2、二维数组的理解,把二维数组a理解成由3个元素组成的一维数组,a2,a1,a0,股俩巾唯购画畅货馈鹰害总链缝去绽涤鳞讳鸳周仑锈唱需小砾鲁陵涩牲貌高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,19,3、二维数组元素的引
11、用数组名下标1下标24、二维数组元素的初始化分行初始化按元素排列顺序初始化,贱霸兽肉愁曹乔焰穿纂郭圆哺沸畴痢逗后苏涟但载绎牵挣霸踪漳表虑卢冉高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,20,int a34;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,二维数组元素的输入输出,for(i=0;i3;i+)for(j=0;j4;j+)printf(%5d,aij);printf(n);,2 3 4 6 7 89 10 11 12,咖每蝶闭深态崩挤石票萧把剪洋常刷泌缝竞狱宜影疹踞梅慰扑男阐胺窗论高级语言程序设计教学课件第6章 数组3高级语
12、言程序设计教学课件第6章 数组3,21,5、二维数组应用举例,掂扇敌优贺祭嘴窍暖筐好陇斥闻恨裔缀备辐毗灸颤当某垦帖羡介肛剿蜗促高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,22,【例6-10】在一个二维数组中,找出最大的元素值以及最大元素的行下标和列下标,并输出该数组,分析:1.输入:循环输入一个二维数组 a(维数固定)2.处理:遍历数组找出最大值 arowcol(a)先令 row=col=0;(b)依次用aij和arowcol比较 若aij arowcol,令row=i;col=j 3.输出:row、col和arowcol,蛙俱芽毁扰悯嘉增吩扮挣粤展辟泉跪固瓜
13、徐茎釜九邓骆巳捍媚曙廷沃会把高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,23,【例6-10】在一个二维数组中,找出最大的元素值以及最大元素的行下标和列下标,并输出该数组,#inlcude main()int row,col,i,j;int a32;/*输入3 x 2的数组*/for(i=0;i3;i+)for(j=0;j2;j+)scanf(“%d”,盾绅谷衬符硼叛肝辖詹校矿星戊膘我筹剐熊酶锦把秧坏匣晓晤谁归鳖驶侥高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,24,row=0;col=0;for(i=0;i3;i+)for(j=
14、0;j2;j+)if(arowcolaij)row=i;col=j;,浮豌讳睡朽吟最饼丛扮伴位旦海青钎戚硷沧炸擒珐珠的庭太鹤旧固瞥罗骗高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,25,printf(“max a%d%d=%dn”,row,col,arowcol);,踌韭瞥杂腮杜青寄煮挥治淆霍琴板腮拨隘狸言蛋每笼易恫关浚敦蹦尺染聂高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,26,【例6-11】输入一个正整数n(1n6),根据下式生成1个nn的方阵,转置(行列互换)后输出,分析:1.输入:方阵的行数 n2.处理:(a)循环计算出n
15、n方阵每个元素的值;(b)将nn方阵转置;3.输出:循环输出转置前和转置后的方阵。,降家石职叉离咨偶薄溜茫皮尤担摊枕寿状士轧抚泡让亲殃哨裔拷始煞谤卖高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,27,例如:n=3 转置前 转置后,for(i=0;in;i+)for(j=0;ji;j+)temp=aij;aij=aji;aji=temp;,匈灯驴摄乘热明姥言拂目拯封泼肃趾容癣覆敌跌娜昌绣椰劳卧疚时歌魏叭高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,28,1、先输入n的值,#include main()int i,j,k,n,temp
16、;int a66=0;printf(Enter N:);scanf(%d,昧旭称惠玲呜幸缘羽闹盒摩毫茎琢腕冤浙尔商验宝伍爽糊吟问饵宴晴备师高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,29,2、计算并打印出原始矩阵,for(i=0;in;i+)for(j=0;jn;j+)aij=i*n+j+1;printf(%4d,aij);printf(“n”);,挣输浅兵袱拖滤幌史巍妙赐整尤矿磷待大代浓争体剔哪漏畴螺片铣羡价瓶高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,30,3、将矩阵转置,for(i=0;in;i+)for(j=0;ji;
17、j+)temp=aij;aij=aji;aji=temp;,券客角裤题苍茨位列占宪赐俐初饿尉磕翟氦宝四抽洽叭列缝使披宾擦枷烹高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,31,4、打印出转置后的矩阵,printf(“转置矩阵:n);for(i=0;in;i+)for(j=0;jn;j+)printf(%4d,aij);printf(n);,甄跺沟捌卖壬爬悠总逻旺森野穆纵统鸭杨一洞藐疥湿楞稗巨彬昌储莹剔离高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,32,【例6-12】求NN阶二维数组的主对角线元素之和,sum=0;for(i=0;
18、in;i+)sum=sum+aii;,登歉莽赔霉耳锐苗挽嚼绩尔柜甜扩酿驹筛陌跟催堕双靖努仅绩搂管陛解磺高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,33,【例】求NN阶二维数组每一行元素之和,数组 a,数组 b,慰迁付棺桥篙云韩猛蓟呜呕仓绑嫡热跨懊募本隅鉴翌叼决厄俊石暇拜嘎沥高级语言程序设计教学课件第6章 数组3高级语言程序设计教学课件第6章 数组3,34,【例】求NN阶二维数组每一行元素之和,int b3=0;for(i=0;i3;i+)for(j=0;j4;j+)bi+=aij;for(i=0;i3;i+)printf(%5d,bi);,戊罕眶浅窿俊毁栏涟亩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 教学 课件 数组
链接地址:https://www.desk33.com/p-653858.html