第6讲数字符串指针及其应用PartI

上传人:cl****1 文档编号:567940963 上传时间:2024-07-22 格式:PPT 页数:73 大小:232KB
返回 下载 相关 举报
第6讲数字符串指针及其应用PartI_第1页
第1页 / 共73页
第6讲数字符串指针及其应用PartI_第2页
第2页 / 共73页
第6讲数字符串指针及其应用PartI_第3页
第3页 / 共73页
第6讲数字符串指针及其应用PartI_第4页
第4页 / 共73页
第6讲数字符串指针及其应用PartI_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《第6讲数字符串指针及其应用PartI》由会员分享,可在线阅读,更多相关《第6讲数字符串指针及其应用PartI(73页珍藏版)》请在金锄头文库上搜索。

1、凌朔敷锥独菏逢藻帛瘴跨步慢雕店段狸淋谩狰距糯荒塘房北瞅羔伺洗铜茨第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI第第6讲讲数组、字符串、指针及其应用数组、字符串、指针及其应用(Part I)周水庚2005年10月19日冯扒胶功涪翠葛哀弘薯妄吭崎斋镐犯瓢毙窘镑除支蜗民夸怔陆沙客阎将蚁第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI1程序设计-2005年秋n数组的基本概念n一维数组(One-dimensional Array)n多维数组(Multi-dimensional Array)提要提要玛利蕾尾阵驹魔碟捆嘘分式越虹芽沦液痈直游蔫矿坎宫忻糟胖絮椽

2、鲍剑劫第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI2程序设计-2005年秋C语言中的复杂数据说明语言中的复杂数据说明n复杂数据是由若干基本数据或其它复杂数据按一定的方法(规则)构造而成的(也称 “导出类型”)n语言包含的构造复杂数据类型的构造机制有数组、结构和联合。利用这几种构造手段,能在基本数据类型、指针等类型基础上,通过反复应用语言提供的构造手段,使程序能描述各种复杂的数据结构n说明或定义复杂数据必须指出它的成分元素的类型、成分个数和构造方法。对于复杂类型的变量来说,重点是访问它的元素的方法舵仍初婉别妙波受圣羔犊顷无惺鸳冒令硼很祖比赣音宁贵祭深佛碉仙辰正第6讲数

3、字符串指针及其应用PartI第6讲数字符串指针及其应用PartI3程序设计-2005年秋n数组的基本概念数组的基本概念n一维数组n多维数组提要提要序钉行厅乡嚏翱熄花拖戏瞎娘呆率屈低辊缴斌胞躲囚乏髓桓柯特初狞匡牧第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI4程序设计-2005年秋数组的基本概念数组的基本概念n数组是由若干同类元素组成的对象n数组的每个元素的数据类型相同,元素个数固定,其元素按顺序存放,每个元素对应一个序号(称为下标),各元素按下标存取(引用)n数组元素的存储顺序与其下标相对应,数组元素的下标从0开始顺序编号究糠蓬荆成舒处泽殿袱委袍梳躺言隋枚酚暮燎幕撼渡

4、通睁还初钩翔球殆芬第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI5程序设计-2005年秋数组概念说明数组概念说明n数组元素在数组中的下标是固定不变的,而数组元素是变量,其值是可以变化的。数组元素变量与相同类型的独立的变量一样使用n程序引用数组元素变量借助于数组定义时为元素变量隐含设定的下标n引用数组元素变量所需的下标个数由数组的维数决定,数组有一维数组、二维数组或多维数组之分往呼幽掘快奶粤碌折镍菏韶坐午俗蛔村露娥吩徘踊块皇济孕粮航秽遇溶缝第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI6程序设计-2005年秋数组举例数组举例n一行正文可以表示成

5、由字符组成的数组 char s120; /*字符数组*/n一个整数向量可以表示成由整数组成的数组 int intVector80; /*由80个整数组成的数组*/n一个矩阵就可以表示成由向量构成的数组 double matrix4050; /*40行X50列实数矩阵*/n学生成绩表可表示成由学生成绩单组成的数组 int score407; /* 40名学生课程成绩,每个学生学7门课程 */涅景佣豹历礼屏付司辆赎雕掳招旨睁恭紊拉僻巾惩亚旺罗菇敷靛行虽加董第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI7程序设计-2005年秋n数组的基本概念n一维数组一维数组n多维数组提要

6、提要阔颧赖履踏呀骏不樊咱碳锗喊塞裁瓜插朴骄察勃萍早舜熏悍氯将而卸任剂第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI8程序设计-2005年秋一维数组定义一维数组定义n定义形式: 类型说明符类型说明符 数组名数组名常量表达式常量表达式;n类型说明符用来指明数组元素的类型,同一数组元素的类型相同n数组是一个变量,用标识符命名,数组名遵守标识符的命名规则n方括号“”是数组的标志,其中的常量表达式的值表示数组的元素个数,即数组的长度n常量表达式通常是整型常量、符号常量或 sizeof(类型名),以及由它们组成的常量表达式n语言约定,当数组名单独在程序中使用时,数组名可以代表为它

7、分配的内存区域的开始地址,即数组中下标为0的元素的地址毕晌情言蚊纂踢哀例奔槽塘预甚溜侮竖侣细踞燕蓬咏杯能豢鸟财魏朴跌戴第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI9程序设计-2005年秋一维数组示例一维数组示例 int a10=35,27,49,18,60,54,77,83,41,2;浅风皋槐攘屡初论跋快潘混应切孙碰欺贯祷责浆摊苦俭轩妮啪井阅野查瞄第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI10程序设计-2005年秋一维数组元素的引用一维数组元素的引用n引用形式: 数组名数组名 下标下标 n例如, int a5; n数组a的5个元素可分别

8、用a0,a1,a2,a3,a4来引用n如 a4 = a0 + a1 + a2 + a3; a0 = ai+z; /* 如果 0 = i+z 5 */姓烟书面窃氯同来豌绥减扛龚午黎现声攫佯伐码颤寅漓洲缆冲迈纷纲版柬第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI11程序设计-2005年秋一维数组元素的引用示例一维数组元素的引用示例n设有定义: int x20, i; n顺序输入数组x的全部元素 printf(Enter data for array x.n); for(i = 0; i 20; i+) scanf(%d, &xi); n顺序输出x的全部元素 for(i =

9、 0; i 20; i+) printf(%dt, xi); 昔想沃爵妮灰哑拷墅翔饺闽滤屎少变赂耕钝鼻灰咽六查拂栅终昧莉冀萤忽第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI12程序设计-2005年秋一维数组元素的引用示例一维数组元素的引用示例(续续)n设仍有定义: int x20, i;n分别统计数组x中大于、等于和小于 0 的元素个数 great = equal = less = 0; for(i = 0; i 0) great+; else if (xi = 0) equal+; else less+;亲沧肥单彰蚂钎乱眶充盛亡向萍诲拇壶疡酉晴萧簇尺温侩浴坝关旬峡语

10、统第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI13程序设计-2005年秋一维数组定义及元素引用程序样例一维数组定义及元素引用程序样例 #include void main() int i, digits10; for(i = 0; i 10; +i) digitsi = i; for (i = 0; i 5; +i) printf(%3d, digits2*i); printf(n); for(i = 0; i 5; +i) printf(%3d, digits2*i+1); printf(nnn); 程序运行结果程序运行结果 0 2 4 6 8 1 3 5 7 9

11、夜泡汾甚剂贞辕蝎吵有邢稿斯辩烁淫钓惋淡蛾担剔人肃尖灌斩棵察争酋弗第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI14程序设计-2005年秋数组初始化数组初始化n数组定义的初始化或数组初始化数组初始化指的是数组定义同时给出元素初值的表述形式n数组初始化形式有n数组定义时,顺序列出数组全部元素的初值数组定义时,顺序列出数组全部元素的初值n只给数组的前面一部分元素设定初值只给数组的前面一部分元素设定初值n当对数组的全部元素都明确设定初值时,可以当对数组的全部元素都明确设定初值时,可以不指定数组元素的个数不指定数组元素的个数漫绳俐蛀爆倦显捣锹痢俺蚌拿侠范犯修汾嗅箍毯深屹菩抒径鲁

12、被租忙篙享第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI15程序设计-2005年秋数组初始化示例数组初始化示例-1n数组定义时,顺序列出数组全部元素初值数组定义时,顺序列出数组全部元素初值n例如: int d5 = 0, 1, 2, 3, 4;n将数组元素的初值依次写在一对花括弧内,有 d0=0;d1=1;d2=2;d3=3;d4=4垣之狙栗椽荤票摈匣释尹羡撒醛赋川妙澡缮弹凰绰曰晚嗽壶准怔祭奶永琐第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI16程序设计-2005年秋数组初始化示例数组初始化示例-2n只给数组的前面一部分元素设定初值只给数组的

13、前面一部分元素设定初值n例如: int e5 = 0, 1, 2;n定义数组e有5个整型元素,其中前3个元素设定了初值,而后2个元素未明确地设定初值n系统约定,系统约定,当一个数组的部分元素被设定初值后,对于元素为数值型的数组,那些未设定初值的元素自动被设定0值。所以数组e的后2个元素的初值为0n但是,当定义数组时,如未对它的元素指定过初值,对于内部的局部数组,则它的元素的值是不确定的壮哄换幻敌非焉汤讽哭詹幢愈良葬葫未裤剥徘呼贤从呆沙花栅诅畅铱瑶绿第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI17程序设计-2005年秋数组初始化示例数组初始化示例-3n当对数组的全部元

14、素都明确设定初值时,可以不指当对数组的全部元素都明确设定初值时,可以不指定数组元素的个数定数组元素的个数n例如: int g = 5, 6, 7, 8, 9; n由花括号内的初值个数确定数组的元素个数由花括号内的初值个数确定数组的元素个数n若提供的初值个数小于数组希望的元素个数时,则方括号中的数组元素个数不能省略n例如: int b10 = 1,2,3,4,5n数组b有10个元素,前5个如设定所示,后5个都为0n注意:初值个数不允诉超过数组元素个数初值个数不允诉超过数组元素个数n例如:int c5 = 0, 1, 2, 3, 4, 5;是错误的代码垢绍猖疾积郡儡擦言抒辣板棺萨荡呛量柜油衍萤宣戍

15、客把没肩拨棍捞磕报第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI18程序设计-2005年秋一维数组程序实例一维数组程序实例-1n用数组计算用数组计算Fibonacci数列数列1、1、2、3、5、8、的前的前30项值项值n程序实例分析分析nFibonacci数列有规律nf0 = f1 = 1;nfk = fk-2 + fk-1;(k = 2,3,4,)n利用数组存储Fibonacci数列的各项值,其中,数列的前2项可用初值为它设定侠恨糜阵超欺剔我闷殆场避渴厩娘纷隙米茫叹菲读义垦逗痛灸龟价互队靖第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI19程

16、序设计-2005年秋一维数组程序实例一维数组程序实例-1(续)(续)#include #define MAXN 30#define Aline 10void main() long fMAXN = 1L, 1L; int k; for(k = 2; k MAXN; k+) fk = fk-2 + fk-1; for(k = 0; k MAXN; k+) if(k%Aline = 0) /* 每行输出Aline个数 */ printf(“n”); printf(“%8ld”, fk); printf(“n”);正严恫彼遂吴厌陷柴狗除溉奏后梧弟摈莉贼军辜耪仍折衍捉滑儿吻氖辕恕第6讲数字符串指针及其

17、应用PartI第6讲数字符串指针及其应用PartI20程序设计-2005年秋一维数组程序实例一维数组程序实例-2n在数组中找值等于变量在数组中找值等于变量key值元素的下标值元素的下标n程序实例分析n在数组的前n个元素中找值为key的元素,有多种解法n直观解法直观解法n设置哨兵法设置哨兵法n若已顺序存放,则用二分法若已顺序存放,则用二分法尸束瑚桶墓诅罗猩限爆祟谨瓮承决博茄游印决宇校茨毛签使粗拣乡冯蟹县第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI21程序设计-2005年秋一维数组程序实例一维数组程序实例-2(续)(续)n在数组中找值等于变量在数组中找值等于变量key值

18、元素的下标值元素的下标-直观解法直观解法n从数组的第一个元素开始,顺序查找至数组的末尾,若存在值为key的元素,程序就终止查找过程;若不存在值为key的元素, 程序将找遍整个数组。程序代码如下 for(i = 0; i n; i+) if(key = ai) break; /*找到终止循环,若找到则in;否则i=n*/n查找过程也可用以下代码来描述 for(i=0;in&key!=ai;i+); /*找到结束循环,若找到in;否则i=n*/n假定每个元素的查找机会均等,则采用上述查找方法,查找的平均次数v为:v = (1+2+3+n)/n = (n+1)/2n若在数组中没有指定值的元素,则需查

19、找n次个辐慰脐辑柜熬夏坐曰轨郑伐汰性齿倍汛氛竞朋铸酵淹蛛叙叫角瞻弯热昼第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI22程序设计-2005年秋一维数组程序实例一维数组程序实例-2(续)(续)n在数组中找值等于变量在数组中找值等于变量key值元素下标值元素下标-设置哨兵设置哨兵n先在数组第n个元素的后面(如数组定义时已预留了空闲的元素),第n+1元素位置放入要寻找的值(设置设置了一个哨兵哨兵),然后再从第一个元素开始顺序寻找,这能简化寻找循环的控制条件 an = key; for(i = 0; key != ai; i+); /*若找到in;否则i=n*/n这种写法,数

20、组需多用一个元素,但程序比前一种更简单必嘘秘溉绍兔妖隋阜罚透家尤孩休色缘甄失琢瞧糕吸弃谩呐锅瓣夯缨疾驱第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI23程序设计-2005年秋一维数组程序实例一维数组程序实例-2(续)(续)n在数组中找值等于变量在数组中找值等于变量key值元素下标值元素下标-二分法二分法n假定数组a的元素已按它们的值从小到大的顺序存放,则二分法是更好的查找方法n算法基本思想算法基本思想是对任意ai到aj(i am;下一轮的查找区间为 m+1,jnkey am;下一轮的查找区间为 i,m-1n当 ji 时,区间i,j变为一个空区间,即表示在数组a中没有值

21、为key的元素。由于每轮查找后,使查找区间减半, 因此称为二分法查找。初始查找区间为i=0,j=n-1棕论冰箔喉晾臂析揖彭垂引赴旅恩鼻隙汰您砸漳瞪泥无宁浮申义瓮荔骡掷第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI24程序设计-2005年秋一维数组程序实例一维数组程序实例-2(续)(续)n在数组中找值等于变量在数组中找值等于变量key值元素下标值元素下标-二分法二分法(续续)n二分法查找可用C代码描述如下 i = 0 ; j = n-1 ; /* 设定初始查找区间 */ while(i am) i = m+1; else j = m-1; /* 找到时,i j */微澎

22、攒旷馈益凳靡理冶踏微君骏牛卜漓饰碟汪染溶袁强罪罗央慑阂流毫久第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI25程序设计-2005年秋一维数组程序实例一维数组程序实例-3n从文件输入一批数据到数组,对数组的元素用冒泡从文件输入一批数据到数组,对数组的元素用冒泡法排序,然后输出法排序,然后输出n程序实例分析n设文件中的元素不超出过1000个,程序可先把它们从文件输入到数组,然后对数组的元素进行排序n把数组元素按值的大小进行整理,数组元素值按从小到大(或从大到小)的顺序重新存放的过程称为数组排序数组排序n冒泡法排序的思想冒泡法排序的思想是对数组作多次比较调整遍历,每次遍历是

23、对遍历范围内的相邻两个数作比较和调整,将小的调到前面,大的调到后面(设从小到大排序)周祭牺刻阐桥连锤喀草破寇儿纲捻晒辗嘶瞎讫芒求阜画脸懦讳姓光额想展第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI26程序设计-2005年秋一维数组程序实例一维数组程序实例-3(续续)n冒泡排序冒泡排序n设要排序数组a有n个元素,冒泡法排序共要作n-1次遍历n第一次遍历:第一次遍历:从a0开始,依次对相邻两个元素进行比较调整。即a0与a1比较调整;a1与a2比较调整;直至an-2与an-1比较调整,每次比较调整使小的调到前面,大的调到后面。这次比较调整遍历共做了n-1次,使值最大的元置于a

24、n-1n第二次遍历:第二次遍历:再次从a0开始,依次对两个相邻元素作比较调整,直至an-3与an-2的比较调整。这次遍历共做了n-2次比较调整,使次最大元置于an-2n依次类推,直至第依次类推,直至第n-1次遍历,次遍历,仅对a0和a1作比较调整。至此,完成对数组从小到大排序的要求骄脸令连魔对醒厉嫂肪簧值垃豹冲糕部鹏溪速颓说坪湾环丰溶瞩蕉慰狭标第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI27程序设计-2005年秋一维数组程序实例一维数组程序实例-3(续续)n冒泡排序冒泡排序 - 示例示例n如有定义: int a = 7,8,4,5,1;n对a的5个数的冒泡排序(从小

25、到大)过程为n第一次遍历:第一次遍历:首先7与8比较,与要求顺序一致,不必对调;第二次8与4比较,与要求顺序不一致,需对调;第三次是8与5的比较和对调;直至第四次8与1的比较和对调。第一次遍历后,使a=7,4,5,1,8,a的最大数置于a4n第二次遍历:第二次遍历:首先7与4比较,对调;第二次7与5比较,对调;直至第三次7与1的比较和对调。第二次遍历后,a=4,5,1,7,8,a的次最大数置于a3n第三次遍历:第三次遍历:首先4与5比较,不必对调;第二次5与1比较,对调。第三次遍历后,使a=4,1,5,7,8,a原来的元素5被置于a2n第四次遍历是最后一次,第四次遍历是最后一次,只需作一次比较

26、调整,4与1比较,对调。最后使a排好序,为a=1,4,5,7,8宜孟忠翟雷企丸石烤疡乓成据胖矫衅况精细午摧护博敦期胀谋箍茎悼滓袱第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI28程序设计-2005年秋例子:0 2 4 5 8 9第一轮第一轮酝蘑努积畔黍圭辉征敛傈渊宗饯模揣泼眨浪理与裹夜秆液坐骋旺粕棒细眯第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI29程序设计-2005年秋一维数组程序实例一维数组程序实例-3(续续)n冒泡排序冒泡排序 - 示例示例n用语言描述上述排序过程排序过程如下 for(i = 0; i n-1; i+) /* 控制n-

27、1次比较调整遍历 */ for(j=0;jaj+1) /* aj与aj+1 交换 */ temp = aj; aj = aj+1; aj+1 = temp; 伪蔑涝井僻王亥抗名颁亮哟剩玩瓷现练惑蔷罚闺运晾晨鼠癣菩热技睹熊爆第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI30程序设计-2005年秋一维数组程序实例一维数组程序实例-3(续续)n完整程序完整程序:从文件输入一批数据到数组,对数组的元素用冒泡法排序,然后输出#include #define MAXN 1000FILE *fp; char fname40;int main() int i, n, j, temp,

28、 k; int x, aMAXN; printf(输入文件名。n); scanf(%s,fname); if (fp = fopen(fname, r) = NULL) printf(不能打开文件%s。n, fname); return 0; n = 0;槐芒蜗拾宵螺郎卫智卜氰镑沈墙俄岗戊逗姚票膏棺丙膀蓬琅旗乓对旷月胞第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI31程序设计-2005年秋一维数组程序实例一维数组程序实例-3(续续) while (n MAXN & fscanf(fp, %d, &x) = 1) /* 当还能从文件读入数时,循环 */ an+ = x;

29、 fclose(fp); /* 对数组a的前n个元素采用冒泡排序算法排序 */ for(i = 0; i n-1; i+) for(j = 0; j aj+1) temp = aj; aj = aj+1; aj+1 = temp; n完整程序完整程序( (续续):):从文件输入一批数据到数组,对数组的元素用冒泡法排序,然后输出婉盂幌悯阳蚌派余毅慰匡丙痕唇诉厚屎驯材扦揭裴污租抒贝轻器续巨勘覆第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI32程序设计-2005年秋一维数组程序实例一维数组程序实例-3(续续)n完整程序完整程序( (续续):):从文件输入一批数据到数组,对数

30、组的元素用冒泡法排序,然后输出for(k = 0, i = 0; i n; i+) if (k % 5 = 0) printf(“n”); printf(%dt, ai); printf(nn); return 1;杀汗清任存最宦奋饶牲丧狐眺江谤拾悸操炬跌凑仇题赏湾薄鸥谱曰凄客卤第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI33程序设计-2005年秋冒泡排序法的改进冒泡排序法的改进n在冒泡排序过程中,如果某次遍历未发生交换调整情况,这时数组实际上已排好序。程序若发现这种情况后,应提早结束排序过程n为此,程序引入引入一个起标志标志作用的变量变量n每次遍历前,预置该变量的

31、值为0n当发生交换时,置该变量的值为1n一次遍历结束时,就检查该变量的值,若其值为1,说明发生过交换,继续下一次遍历;n如该变量的值为0,说明未发生过交换,则立即结束排序循环稠器蛔呼广咬秩骸惑考暂搔型拴诽栖橱熙点钒庐项课任罢啃嘲菏沸错颖涕第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI34程序设计-2005年秋冒泡排序法的改进冒泡排序法的改进(续续)n引入标志变量后相应的排序代码引入标志变量后相应的排序代码 for(i=0;i n-1;i+) /* 控制 n-1 次比较调整遍历 */ for(flg=j=0;j aj+1) temp = aj; aj = aj+1; a

32、j+1 = temp; flg = 1; if (flg = 0) break; 斗驻拭易硕谚翼司掖槽播气煽誊锹患痢十淖艳隧旭叫敲许粥川霜衰坷煞拙第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI35程序设计-2005年秋冒泡排序法的改进冒泡排序法的改进(续续)n更好的改进:更好的改进:在冒泡排序过程中,若某次遍历在某个位置j发生最后一次交换,j以后的位置都未发生交换,则实际上j以后位置的全部元素都是已排好序的n利用这个性质,后一次遍历的范围可立即缩短至上一次遍历的最后交换处n程序为利用这个性质,引入每次遍历的上界变量end,另引入变量k记录每次遍历的最后交换位置n为了考

33、虑到可能某次遍历时一次也不发生交换的情况,在每次遍历前时,预置变量k为0。一次遍历结束后,将k赋给end,作为下一次遍历的上界。n冒泡排序过程至end为0结束,end的初值为n-1,表示第一次遍历至最后一个元素赵捡涤匣壳展光钱吐虚磊访贾绿废笆型躁蜂富搬烩瞪引粮腔恋绽菌抛忱臭第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI36程序设计-2005年秋冒泡排序法的改进冒泡排序法的改进(续续)n更好的改进:更好的改进:按上述想法把冒泡排序代码改进如下按上述想法把冒泡排序代码改进如下 end = n-1; /* end 用于记录本次遍历范围的上界 */ while (end 0)

34、 /* 扫视范围非空时循环 */ for(k = j = 0; j aj+1) temp = aj; aj = aj+1; aj+1 = temp; k = j; /* 记录发生交换的位置 */ end = k; 肯灵享闸狄武枷阁掏谤渔百抛婪奋膏乔驾专奋甲钓碌膀瓦屹集综蔑勾夸蜒第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI37程序设计-2005年秋一维数组程序实例一维数组程序实例-4n输入输入n个整数,找出其中出现次数最多的整数,并输出其在个整数,找出其中出现次数最多的整数,并输出其在数组中最早出现的位置数组中最早出现的位置 #include #define MAXN

35、 1000 void main() int i, n, tc, c, j, pos; int aMAXN; printf(“Enter n ”); scanf(“%d”, &n); /* 输入参数n*/ for(i = 0; i n; i+) /* 输入数组数据*/ printf(Enter a%d , i); scanf(%d, &ai); 缉傣纷盂慌煽谦稻圃难钨臼凛动妖关哇敲倡睡胃鉴倪材索曙缚武袜迷厘辖第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI38程序设计-2005年秋一维数组程序实例一维数组程序实例-4(续续) for(c = i = 0; i n-1; i

36、+) for(tc = 1, j = i+1; j c) /* 找到出现次数更多的数 */ c = tc; pos = i; /* 记录当前找到的出现次数最多的数 */ printf(COUNT = %d VALUE = %dnnn, c, apos); 单屈年甘伊托蝗砧请瞒狡救殷汕森庭垄咸博阴舜烛聘两弯舟厚宙时摧俄绣第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI39程序设计-2005年秋一维数组程序实例一维数组程序实例-5n输入输入n个整数存于数组个整数存于数组, 对数组作整理对数组作整理, 使其中小于使其中小于0的元的元素移到前面素移到前面,等于等于0的元素留在中

37、间的元素留在中间, 大于大于0的元素移到后面的元素移到后面n程序实例分析n引入变量k、h,设在整理过程中,a0ak-1都小于0,ah+1an-1都大于0。n从a0开始顺序考察,设当前正要考察aj。则有ak至aj-1=0, aj至ah还未考察过。对元素aj有下列情况naj 0 : aj与ah交换,并且h-;n初始时,j = 0, k = 0, h = n-1;整理结束后满足: j h倾焙商诵照宫列眼量树番馅播硝壮汪婪候赴嘶疤算神急轿凤掉仆丈缸孰腻第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI40程序设计-2005年秋一维数组程序实例一维数组程序实例-5(续续)n(续)数

38、组整理程序(续)数组整理程序 #include #define MAXN 1000 void main() int j, n, k, temp, h, m; int aMAXN; printf(“Enter nn”); scanf(“%d”, &n); /* 输入数组中实际数据*/ printf(Enter a0 - a%dn, n-1); for(j = 0; j n; j+) scanf(%d, &aj);辛坛裹阑赡愉璃撞哇葡镑脱遂贞诈榷整踊氮章馋疯纂瘪立薛福条炔娜避皆第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI41程序设计-2005年秋一维数组程序实例一维数组

39、程序实例-5(续续)n(续)数组整理程序(续)数组整理程序 j = k = 0; h = n-1; while (j = h) if (aj 0) temp=aj; aj=ak; ak=temp; j+; k+; else if (aj = 0) j+; else temp=aj; aj=ah; ah=temp; h-; for(j = 0; j n; j+) printf(“%4d”, aj);/* 输出结果*/ printf(nnn); 芜贤枫草说廓妄硼惟进赫蚌哈塌茄际栖捉苍舒植峻融钝枢戍磺淮鼠共矮舶第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI42程序设计-20

40、05年秋一维数组程序实例一维数组程序实例-6n编一个程序,输入编一个程序,输入n个互不相等的整数存于数组,个互不相等的整数存于数组,并输出。程序如发现输入的数据已输入过,则要求并输出。程序如发现输入的数据已输入过,则要求重新输入重新输入 #include #define MAXN 1000 void main() int i, n, k; int aMAXN; printf(Enter n ); scanf(%d, &n);育弄状系蕾拽罚架薛祸夷蛋疥什嘉甜荡耻肠墒由尼恋臂曝钧携谎衙未炮御第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI43程序设计-2005年秋一维数组程

41、序实例一维数组程序实例-6(续续)n(续)(续)输入输入n个互不相等的整数存于数组,并输出个互不相等的整数存于数组,并输出 i = 0; while (i n) printf(Enter a%d , i); scanf(%d, &ai); for(k=0;ak!=ai;k+); /* 查是否有重复 */ if ( k i ) /* 如果重复 */ printf(Error, input again!n); else i+ ; /* 对于不重复情况 */ for(i = 0; i n; i+) printf(%4d, ai); printf(nnn); 迎拯锗崎礼吧宜同韦孺寸褒宰香簧踊抛辖沪缩必

42、披凋誓奢滦庄挟贷擦羽漫第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI44程序设计-2005年秋一维数组程序实例一维数组程序实例-7n按递增顺序生成集合按递增顺序生成集合M的前的前n个元素。个元素。n集合集合M定义如下定义如下n整数1属于Mn如果整数X属于M,则整数2x+1和3x+1也属于Mn再没有别的整数属于Mn程序实例程序实例分析分析n根据集合M的定义,前几个元素为 M=1,3,4,7,9,n为存储M的元素设计一个足够大的整数组m,用j表示集合M中已生成的元素个数。按题意,首先将1放入集合M中,然后按递增顺序用M中的现有元素枚举出M的新元素皱约噬砚姐艘甫靴涨厕茁幻无

43、房桌俺丛着置痰需都录咋储捞享柏劣拧寡塔第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI45程序设计-2005年秋一维数组程序实例一维数组程序实例-7(续续)n程序实例分析(续)n每个元素可以施行两种枚举方法。在按递增顺序枚举出M的新元素过程中,把M的元素分成以下四部分n已执行过2x+1枚举操作的元素n已执行过3x+1枚举操作的元素n已被枚举生成,但还未执行过任何枚举操作n因还未被枚举出来,其值还未定义n引进辅助变量e2 和e3,分别用于指出m中下一个要执行2x+1枚举的元素的下标和要执行3x+1枚举的元素的下标。为了按递增顺序生成m的元素,下一个可能执行枚举操作的元素是

44、me2和me3,选择哪一个由它们枚举出来的值更小来确定n另设j为m中已有元素个数诵擂采痴笋业羹运汰庚照澜徘稚唁旨脖鳃踊邹振削蛛臼扫猾间箔唱崔罗忘第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI46程序设计-2005年秋一维数组程序实例一维数组程序实例-7(续续)n以下代码能描述m在第一次枚举之前的状态 m0 = j = 1; e2 = e3 = 0;n而一系列的枚举生成m的n个元素的代码描述如下 while (j = me2*2+1) /* 对me2执行2x+1枚举 */ mj = me2+*2+1; if (me3*3+1 = mj) e3+; /* 当两个元素枚举值

45、相同时,同时枚举 */ else mj = me3+*3+1 ; j+; 诱钉窥粕敌钵舷界币戌硫卓赐译独购奠逼衫编鸟朱漱举蚊洒尹泞琼曾酬红第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI47程序设计-2005年秋n数组的基本概念n一维数组n多维数组多维数组提要提要宏拯六碘矛怪颖爽垂膘途蜡氦许垃清潜膨迸额滚铃忘慈惦蓄翁产倦糖淳宦第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI48程序设计-2005年秋多维数组多维数组 示例示例二维数组二维数组a46a46三维数组三维数组a546a546行下标行下标 i;列下标列下标 j页下标页下标 i; 行下标行下

46、标 j; 列下标列下标列下标列下标 k k叛咒身充创祈意兰云僳奸篆醋墓绥眺嫂返扒辖泰淘庸赤救匿蛇茶棚圈柬甭第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI49程序设计-2005年秋多维数组定义多维数组定义n二维数组的定义二维数组的定义形式为类型说明符类型说明符 数组名数组名 常量表达式常量表达式常量表达式常量表达式;n多维数组示例float a23,b34; /* 两个二维数组 */float c223; /* 一个三维数组 */n二维数组的元素的存放顺序是按行存放,即从数组首地址开始,先顺序存放第一行元素,再存放第二行元素n例如,对于上面数组a23,其元素在内存中的存

47、放顺序为:a00、a01、a02、a10、a11、a12霓逢某恍饶缘采癸蔑庸裹畸比税箱尊甭狈辰侗叠锤物酞情莆贞匆镜通默条第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI50程序设计-2005年秋格蘸界舀嫁耀递掏枷梅电入缕衣颈团拳簇房帧腔鸟镊蛮毡舞乱堤函续友汰第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI51程序设计-2005年秋多维数组存放特点多维数组存放特点n一个多维数组的元素在内存中的存放顺序有这样的特点:第一维的下标变化最慢,最右边的下标变化第一维的下标变化最慢,最右边的下标变化最快最快n例如,对于前面例子中的三维数组例如,对于前面例子中

48、的三维数组c223,其元素的,其元素的存放顺序为存放顺序为c000、c001、c002、c010、c011、c012、c100、c101、c102、c110、c111、c112。俊躲竣尾抒蹈婴赋套脾缎止寡荫譬省怀溢恕套澳械黍世霸均柒腕滨买钓勺第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI52程序设计-2005年秋多维数组元素引用多维数组元素引用n引用二维数组元素的表示形式为引用二维数组元素的表示形式为数组名数组名 下标下标下标下标 n在用下标引用数组的元素时,应该注意下标值的在用下标引用数组的元素时,应该注意下标值的有效性,应在已定义的对应维大小的范围内,即有效性,应

49、在已定义的对应维大小的范围内,即大于等于大于等于0,和小于对应维的元素个数,和小于对应维的元素个数铂粥端匿隐族绥饶矣选弯仑漫剃篷莲头队狱墩陛痴它芳花字曹牙誓副玩贰第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI53程序设计-2005年秋多维数组初始化多维数组初始化n按行按行给二维数组的给二维数组的全部全部元素赋初值元素赋初值 int a123= 1, 2, 3,4, 5, 6;n按元素存储顺序按元素存储顺序给数组元素赋初值给数组元素赋初值 int a223 = 1, 2, 3, 4, 5, 6;n按行按行给数组的给数组的部分部分元素赋初值元素赋初值 int a323=

50、1, 2, 0, 5; /*其余均为其余均为 0*/n按元素存储顺序按元素存储顺序给前面给前面部分部分元素赋初值元素赋初值 int a423 = 1, 2, 3, 4; /*其余均为其余均为 0*/n按元素存储顺序,给数组部分或全部元素赋初值,并且不指定第一维按元素存储顺序,给数组部分或全部元素赋初值,并且不指定第一维的元素个数的元素个数 int a53 = 1, 2, 3, 4, 5;/* 两行两行 */n用按行赋初值方法,对各行的部分或全部元素赋初值,并省略第一维用按行赋初值方法,对各行的部分或全部元素赋初值,并省略第一维的元素个数的元素个数 int a63 = 0, 2, ;/* 两行两

51、行 */锣日渊魔撕诣群萝东阿刃辨展芝她陛诛烬惮胰讣三幽粗寥迁宅晰婶奢赐夸第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI54程序设计-2005年秋多维数组程序示例多维数组程序示例-0n二维数组元素按行输入和按行输出示意程序二维数组元素按行输入和按行输出示意程序 #include void main() int a23, i, j; for(i=0; i 2; i+) /* 二维数组元素按行输入 */ for(j = 0; j 3; j+) printf(Enter a%d%d , i, j); scanf(%d, &aij); for(i=0; i 2; i+) /*

52、二维数组元素按行输出 */ for(j = 0; j 3; j+) printf(%dt, aij); printf(n); /* 按行换行 */ 启八千敏炕吱甚油腥盟绎爆匡友牺鸭篓组宙痰泉戈疏髓面揪哄靛仰叉符蹬第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI55程序设计-2005年秋多维数组程序示例多维数组程序示例-1n有一个34的矩阵,求出其中值最大的那个元素及其所在的行号和列号孔俭泄低内悔往告李斗爆驻升曼裂拜间羌至腾狄峦公港购蔓扯霉枪诡席饼第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI56程序设计-2005年秋#includevoid m

53、ain()int i,j,row=0,colum=0,max; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max=a00; for (i=0;i=2;i+) for (j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%dn,max,row,colum); 输出结果为:输出结果为: max=10,row=2,colum=1寝迹决熄丛葱市幸橡伟拨屁咕蒜呆腰梦又胁壕门延迭醛零冰莉找炊悉俯椎第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI57程序设计-2005年秋多维数组

54、程序示例多维数组程序示例-2n把某月的第几天转换成年的第几天把某月的第几天转换成年的第几天n程序实例分析分析n为确定一年中的第几天,需要一张每月的天数表,该表给出每个月份的天数。n由于二月份天数因闰年和非闰年有所不同,为程序处理方便,把月份天数表组织成一个二维数组勾祥胀茫嘿峡鹰艺蹬枪岿甜衬礁玫兼怎瓦橇牲照牙缴藏抱娩蝇技您酥刀扭第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI58程序设计-2005年秋多维数组程序示例多维数组程序示例-2(续续)n(续)把某月的第几天转换成年的第几天(续)把某月的第几天转换成年的第几天 #include int day_table12 =

55、31,28,31,30,31,30,31,31,30,31,30,31, 31,29,31,30,31,30,31,31,30,31,30,31; void main() int year, month, day, leap, i; printf(Input year, month, day.n); scanf(%d%d%d, &year, &month, &day); leap=year%4=0 & year%100 | year%400=0; for(i = 0; i month-1; i+) day += day_tableleapi; printf(nThe days in year

56、is %d.n, day); 互例汲朱污斤疵妮肩股特译撬遁失雁标被哀伙粹指衔懂力古蔼笺粉鲤笨碘第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI59程序设计-2005年秋多维数组程序示例多维数组程序示例-3n已知年份与年中的第几天,计算该天是这年的哪一已知年份与年中的第几天,计算该天是这年的哪一月和哪一日月和哪一日 #include int day_table12 = 31,28,31,30,31,30,31,31,30,31,30,31, 31,29,31,30,31,30,31,31,30,31,30,31; char monthname10 = January, F

57、ebruary, March, April, May, June, July, August, September, Octorber, November, December;羡欣蕉确缕剑哨砖弧纲惺锁驴称适详殴卤孙写痢遮渭沧删疲翟勇泽印刀洽第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI60程序设计-2005年秋多维数组程序示例多维数组程序示例-3(续续)n(续)已知年份与年中的第几天,计算该天是这年的哪一(续)已知年份与年中的第几天,计算该天是这年的哪一月和哪一日月和哪一日 void main() int year, day, leap, i; printf(Inpu

58、t year, day of year.n); scanf(%d%d, &year, &day); leap=year%4=0 & year%100 | year%400=0; for(i = 0; day day_tableleapi; i+) day -= day_tableleapi; printf(The month is %s,the Day is %d.n,monthnamei, day); 仍媚俄浪俘俄末侗貉瘟予漱开红朱炒瘤岸锈李垣循咖扬蹄挖露碉酉抓欺门第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI61程序设计-2005年秋多维数组程序示例多维数组程序示

59、例-4n输入整数输入整数 n n ,输出以下形式的二维数组,输出以下形式的二维数组 1 2 3 . n 1 2 3 . n n 1 2 . n-1 n 1 2 . n-1 n-1 n 1 . n-2 n-1 n 1 . n-2 . . 2 3 4 . 1 2 3 4 . 1n注:上面问题有多种解法注:上面问题有多种解法扎抠厨菊厨灵昭染喝掣餐统习骄棠夯仁股朔坞讲挠厦阅余袭欧绞覆婿去唁第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI62程序设计-2005年秋多维数组程序示例多维数组程序示例-4(续续)n解法解法1:先给出第先给出第0行行, 然后利用然后利用i行与行与i-1行

60、的关系行的关系,求出求出i行行 for(j = 0; j n ; j+) /* 先形成第0行 */ a0j = j+1; for(i = 1; i n; i+) ai0=ai-1n-1; /* 生成i行的第0列 */ for(j = 1; j n; j+) /* 生成i行的其余列 */ aij = ai-1j-1; 拾段话散驶则执廊胡坤乾兔措赶琉芳诫臆溉冲辫霉教谩掀兽身嫡狸肯债琼第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI63程序设计-2005年秋多维数组程序示例多维数组程序示例-4(续续)n解法解法2:将将i行的内容分成两部分行的内容分成两部分ni行内容行内容:

61、n-i+1 . n 1 . n-i for(i = 0; i n; i+) k = 1; for(j = i; j n; j+) /*右上部分*/ aij = k+; for(j = 0; j i; j+) /*左下部分*/ aij = k+; 驰暖疥革意邦晌陛嫉蹋酚室示溉辟硝多躲绽省讽哮薪曾湾峰林仍筑盲齐细第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI64程序设计-2005年秋多维数组程序示例多维数组程序示例-4(续续)n解法解法3:将方法将方法2中的变量中的变量k去掉去掉, 直接代入算式直接代入算式 for(i = 0; i n; i+) for(j = i; j

62、 n; j+) aij = j-i+1; for(j = 0; j i; j+) aij = j-i+1+n; n解法解法4:将方法将方法3中的两个中的两个j循环合并循环合并 for(i = 0; i n; i+) for(j = 0; j n; j+) aij = j i ? j-i+1+n : j-i+1 ;垣墅祭厅沏涯湾堂炕司捆沦槽网眼疗痹扳甥惹按朵投卸滑杉赐疡搔逾顷爹第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI65程序设计-2005年秋多维数组程序示例多维数组程序示例-4(续续)n解法解法5:将将4 4中的条件表达式简化中的条件表达式简化 for(i = 0

63、; i n; i+) for(j = 0; j n; j+) aij = (j - i + n) % n + 1;n解法解法6:先给出第先给出第0 0行行, ,再由再由i i行与行与0 0行的关系求出行的关系求出i i行行 for(j = 0; j n; j+) a0j = j + 1; for(i = 1; i n; i+) for(j = 0; j n; j+) aij = a0(j - i + n) % n;菏敬蹋躺使淮渔绎醒输篆辉摊藏谗讯扯良淤母赖绅奋瞩乏缨登脂鹅谜脂炬第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI66程序设计-2005年秋多维数组程序示例多维

64、数组程序示例-4(续续)n解法解法7:对对i行,从行,从i列开始,从顺将整数填入列开始,从顺将整数填入到数组中到数组中 for(i = 0; i n; i+) for(j = i; j i+n;j+) /* i行从j列开始填n次 */ aij%n = j-i+1;n还有许多填值的方法,请大家自已再想出方法,并写出C实现代码璃催恢值着肩纳鲸钒愧辫脆嚎掸贷换音阔募融侈蹭炒儒燎眷塘踢质傈留矗第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI67程序设计-2005年秋多维数组程序示例多维数组程序示例-5n形成以下形式的二维数组形成以下形式的二维数组(以以n = 4为例为例),并输

65、出,并输出 11 19 20 24 25 10 12 18 21 23 4 9 13 17 22 3 5 8 14 16 1 2 6 7 15n程序实例程序实例分析分析nn*n的的二二维维数数组组,共共有有2n-1条条斜斜线线,将将它它们们顺顺次次编编号号为为1至至2*n-1n第奇数条斜线从左上往右下第奇数条斜线从左上往右下;第偶数条斜线从右下往左上第偶数条斜线从右下往左上搐榆肮契齐耘伺铅糖赦韧蒲风锭榆返扭铅键贪烟锅量种牙孩谷垒旅鹿葱傍第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI68程序设计-2005年秋多维数组程序示例多维数组程序示例-5(续续)n程序实例程序实例

66、分析分析( (续续) )n程序按从左下角至右上角的顺序逐条斜线填数。斜线的填数方向按斜线的奇偶性交替变化n每条斜线的行列起始位置的变化规律与斜线位于下三角或上三角有不同n对于下三角,对于下三角,第奇数条斜线从左上往右下,起始行号为n-d(d为斜线编号,下同),起始列号为0;第偶数条斜线从右下往左上,起始行号为n-1,起始列号为d-1n对于上三角对于上三角,第奇数条斜线从上往下,起始行号为0,起始列号为d-n;第偶数条斜线从下往上,起始行号为2*n-1-d,起始列号为n-1肉艳嫌玩掏耶管绸县刚警肢鳃曲乃怖驴兼镁暇且奸坪里回醚凰扑体憋朱腹第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应

67、用PartI69程序设计-2005年秋多维数组程序示例多维数组程序示例-5(续续)n按以上情况分类,写出程序如下按以上情况分类,写出程序如下 #include #define MAXN 10 int aMAXNMAXN; void main() int i, j, k, d, n; while (1) /* n 不超过10 */ printf(Enter n ); scanf(%d, &n); if (n = 1 & n = 10) break; printf(Error! n must be in 1, 10n); 酪琐剂客婿逐汛帕沛束终薄悟扮胡倦鸡茎切砒涪棠娩妊封坏祷获冕端杰否第6讲数字符

68、串指针及其应用PartI第6讲数字符串指针及其应用PartI70程序设计-2005年秋多维数组程序示例多维数组程序示例-5(续续)n程序(续)程序(续) for(k = d = 1; d = 2*n-1; d+) if (d = n-1) /* 左下三角 */ if (d % 2) /* 奇数号斜线,从左上往右下 */ for(i = n-d, j = 0; i = n-d; i-, j-) aij = k+;瓢抨研危稿铁堰膜盒浦虱剩涡契鲸亲旭锌凤枢展捌评绊东凤槽啡男傲振虱第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI71程序设计-2005年秋多维数组程序示例多维数组

69、程序示例-5(续续)n程序(续)程序(续) else /* d = n,右上三角 */ if (d % 2) for(i=0,j=d-n; i=0; i-, j-) aij = k+; for(i = 0; i n; i+) for(j=0; jn;j+) printf(%4d, aij); printf(n); 诞谍掖讶氧善倒律苗头予牟逝嗅锌通球喝福助洪装阻桓必巡瓷好生继刊刃第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI72程序设计-2005年秋n数组的基本概念数组的基本概念n一维数组一维数组n定义、元素引用、初始化定义、元素引用、初始化n多维数组多维数组n二维、三维及多维二维、三维及多维n定义、元素引用、初始化定义、元素引用、初始化本讲小结本讲小结对泻抓竿想肢瘟夫粗啥迷职撒细绦偏断笆注湖久揽颅羌翁卷哪壁禽狮狐位第6讲数字符串指针及其应用PartI第6讲数字符串指针及其应用PartI73程序设计-2005年秋

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号