2006第6章 数组.pptVIP

  • 0
  • 0
  • 约1.13万字
  • 约 45页
  • 2017-12-26 发布于河北
  • 举报
2006第6章 数组

计 算 机 引 论(C 语 言) 第六章 数组 本章主要内容 一维数组的定义和使用 二维数组的定义和使用 多维数组简介 字符数组的使用及其相关函数 《本章要求》 理解数组变量在内存中的存放形式;掌握一维数组和二维数组变量的定义和数组元素的引用;掌握各种字符串库函数的用法。 数组的用处 保存大量同类型的相关数据 如矩阵运算,表格数据等 6.1 数组(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 10 int a[SIZE]; 数组的使用 数组的下标都是从0开始 对数组每个元素的使用与普通变量无异 可以用表达式作为下标,动态决定访问哪个元素 for (i=0; iSIZE; i++) a[i] = 2 * i; 下标越界是大忌! 使用大于最大下标的下标,将访问数组以外的空间。那里的数据是未知的,可能带来严重后果 数组的特点 快速地随机访问 一旦定义,不能改变大小 一维数组的输入和输出 例6.4 —打印出最高分及其学生序号 从键盘输入学生人数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); } 排序算法 交换法排序 选择法排序 交换法排序 交换法排序(从大到小) 选择法排序 选择法排序(从大到小) for (i=0; in-1; i++) { k = i; for (j=i+1; jn; j++) { if (score[j] score[k]) 记录此轮比较中最高分的元素下标 k = j; } 若k中记录的最大数不在位置i,则 交换成绩score[k]和score[i], 交换学号num[k]和num[i] } 作业 1、有一个已经排好序的数组,今输入一个数,要求按照原来排序的规律将它插入到数组中 2、将一个数组中的值按逆序重新存放,例

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档