- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]Ch6-数组
29/04/05 NEUQ计算机兴趣小组专用教案 Ch6 数组 内容提要 数组类型; 向函数传递一维数组和二维数组; 常用算法:排序、查找、求最大最小值等; 用字符数组存取字符串; 使用字符串处理函数处理字符串 数组的用处 保存大量同类型的相关数据 如矩阵运算,表格数据等 数组(Array) int a[10]; 定义一个有10个元素的数组,每个元素的类型均为int 使用a[0]、a[1]、a[2]、……、a[9]这样的形式访问每个元素。它们与普通变量没有任何区别 系统会在内存分配连续的10个int空间给此数组 数组下标可以是整型表达式 直接对a的访问,就是访问此数组的首地址 数组的定义与初始化 数组定义后的初值仍然是随机数,一般需要我们来初始化 int a[5] = { 12, 34, 56 ,78 ,9 }; int a[5] = { 0 }; int a[] = { 11, 22, 33, 44, 55 }; 数组大小最好用宏来定义,以适应未来可能的变化 #define SIZE 10int a[SIZE]; 数组大小定义好后,将永远不变 数组的使用 数组的下标都是从0开始 对数组每个元素的使用与普通变量无异 可以用任意表达式作为下标,动态决定访问哪个元素 for (i=0; iSIZE; i++) a[i] = 2 * i; 下标越界是大忌! 使用大于最大下标的下标,将访问数组以外的空间。那里的数据是未知的,可能带来严重后果 sizeof可以用来获得数组大小 数组的特点 快速地随机访问 一旦定义,不能改变大小 一维数组的输入和输出 例6.1 兔子生崽问题 Fibonacci数列 1,2,3,5,8,13,21,34,55,89,144,233,… 例6.1 #include stdio.h #define YEAR_MONTH 12 main() { int f[YEAR_MONTH+1] = {0,1,2}; int month; for (month=3; month=YEAR_MONTH; month++) { f[month] = f[month-1] + f[month-2]; } for (month=1; month=YEAR_MONTH; month++) { printf(%d\t, f[month]); } printf(\nsum = %d\n, f[YEAR_MONTH]); } 例6.2 —打印出最高分及其学生序号 从键盘输入学生人数n; 从键盘输入所有学生的学号和成绩分别存入数组num和score 假设其中的一个学生成绩为最高,同时记录其学号,即令 maxScore = score[0] maxNum = num[0]; 对所有学生成绩进行比较,即 for (i=0; in; i++) { 若score[i] maxScore, 则修改maxScore值为score[i], 并记录其学号maxNum = num[i]; } 打印最高分maxScore及其学号maxNum; #include stdio.h #define ARR_SIZE 40 main() { float score[ARR_SIZE], maxScore; int n, i; long maxNum, num[ARR_SIZE]; printf(Please enter total number:); scanf(%d, n); printf(Please enter the number and score:\n); for (i=0; in; i++) { scanf(%ld%f, num[i], score[i]); } maxScore = score[0]; maxNum = num[0]; for (i=1; in; i++) { if (score[i] maxScore) { maxScore = score[i]; maxNum = num[i]; } } printf(maxScore = %.0f, maxNum = %ld\n, maxScore, maxNum); } #include
文档评论(0)