书签 分享 收藏 举报 版权申诉 / 29
上传文档赚钱

类型C语言一维数组.ppt

  • 上传人(卖家):淡淡的紫竹语嫣
  • 文档编号:1107567
  • 上传时间:2021-02-22
  • 格式:PPT
  • 页数:29
  • 大小:511KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言一维数组.ppt》由用户(淡淡的紫竹语嫣)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 数组
    资源描述:

    1、微信公众号;自动化电气系统微信公众号;自动化电气系统 QQ群;群;60886850 楊瀟楊瀟 2 2021/2/11 数组的定义、引用、初始化和输出数组的定义、引用、初始化和输出 和数组有关的经典算法和数组有关的经典算法 冒泡法、选择法、折半查找法、求集合中最大或冒泡法、选择法、折半查找法、求集合中最大或 最小的元素最小的元素 向函数传递一维数组向函数传递一维数组 主要内容主要内容 3 2021/2/11 重点、难点重点、难点 对数组名的理解对数组名的理解 和数组有关的经典算法(难点)和数组有关的经典算法(难点) 冒泡法排序、选择法排序冒泡法排序、选择法排序 顺序查找法、折半查找法顺序查找法、

    2、折半查找法 4 2021/2/11 假设集合中有班上假设集合中有班上30个同学的高数成绩,找出高个同学的高数成绩,找出高 数成绩的最高分,并将最高分打印到屏幕上数成绩的最高分,并将最高分打印到屏幕上 算法分析:算法分析: 定义变量存放全班定义变量存放全班30个同学的高数成绩,定义变量个同学的高数成绩,定义变量 MaxScore,初值为初值为0 MaxScore = 元素元素1; /*假设集合中第一个元素值最大假设集合中第一个元素值最大*/ for(i=0;i MaxScore) MaxScore = 元素元素i 找出全班高数成绩的最高分找出全班高数成绩的最高分 5 2021/2/11 保存大量

    3、同类型的相关数据保存大量同类型的相关数据 如矩阵运算,表格数据等如矩阵运算,表格数据等 数组(数组(Array)的作用)的作用 6 2021/2/11 数组的定义数组的定义 语法格式:语法格式: 类型名类型名 数组名数组名下标下标1下标下标2下标下标n; 下标为下标为1个时为一维数组,依此类推个时为一维数组,依此类推 下标必须是一个常量表达式,只能用方括符括下标必须是一个常量表达式,只能用方括符括 起来起来 数组大小最好用宏来定义,以适应未来可能的数组大小最好用宏来定义,以适应未来可能的 变化变化 #define SIZE 10 int aSIZE; 数组特点数组特点 快速地随机访问快速地随机

    4、访问 一旦定义,不能改变大小一旦定义,不能改变大小 7 2021/2/11 数组元素的引用数组元素的引用 格式格式 数组名数组名 下标下标; 下标表示当前元素相对于第一元素的下标表示当前元素相对于第一元素的偏移量偏移量 当使用数组名时,代表数组的当使用数组名时,代表数组的首地址首地址 二维数组的引用二维数组的引用 注意区分数组定义和数组引用注意区分数组定义和数组引用 注意下标越界问题注意下标越界问题 数组不能整体引用数组不能整体引用 对数组每个元素的使用与普通变量无异对数组每个元素的使用与普通变量无异 8 2021/2/11 全部赋初值全部赋初值 char ch4=h,a,l,0; int a

    5、rr=3,7,5,8; 部分赋初值部分赋初值 float f10=1.7,2.1; 二维数组的初始化二维数组的初始化 int a23=1,2,3,4,5,6; int a3=1,2,3,4,5,6; int a3=1,2,4; 数组的初始化数组的初始化 double arr3; arr3=1.1; 9 2021/2/11 数组的物理存储结构数组的物理存储结构 按行顺序存放数组按行顺序存放数组 arr00 arr01 arr02 arr03 arr10 arr11 arr12 arr13 arr20 arr21 arr22 arr23 arr00 arr01 arr02 arr03 arr10

    6、arr11 arr12 arr13 3000 3002 3004 3006 3008 3010 3012 3014 10 2021/2/11 只能逐个对数组元素进行操作只能逐个对数组元素进行操作(字符数组例外)(字符数组例外) 输入方法:输入方法: int a10,i; 输入第输入第i个数组元素:个数组元素: scanf(%d, 输入整个数组元素输入整个数组元素: for (i=0;i10;i+) scanf(%d, 输出方法:输出方法: 输出第输出第i个数组元素:个数组元素: printf(%d,ai); 输出整个数组元素:输出整个数组元素: for (i=0;i10;i+) printf(

    7、%d,ai); 一维数组的输入和输出 11 2021/2/11 用法一:求表达式计算结果用法一:求表达式计算结果类型类型所占用的所占用的字节数字节数 sizeof(表达式表达式) int a = 5; sizeof(a+5); 用法二:求某种类型所占用的用法二:求某种类型所占用的字节数字节数 sizeof(数据类型名数据类型名) x = sizeof(double)+2; printf(“%d”,x); sizeof运算符运算符 12 2021/2/11 #include #define ARR_SIZE 30 int main() int scoreARR_SIZE=0, MaxScore=

    8、0, i; printf(Please enter scores:); for(i=0;iARR_SIZE;i+) scanf(%d, 经典算法:找出集合中最大元素经典算法:找出集合中最大元素 13 2021/2/11 MaxScore = score0; /* 假设第一个元素是最大值假设第一个元素是最大值 */ for(i = 0;i ARR_SIZE; i+) if(MaxScore scorei) MaxScore = scorei; printf(MaxScore = %dn,MaxScore); return 0; 14 2021/2/11 打印出成绩为打印出成绩为100分同学的学号

    9、分同学的学号 int main() int scoreARR_SIZE=0, i,flag=1; for(i=0;iARR_SIZE;i+) /*顺序扫描数组中每个元素顺序扫描数组中每个元素*/ if(100=scorei) printf(No=%dt,i+1); flag=0; if(flag) printf( not found!n); return 0; 15 2021/2/11 折半查找折半查找 基本思想基本思想 使用均分确定法,找出区间中的中点元素,如果使用均分确定法,找出区间中的中点元素,如果 待查信息的值小于中点元素值,则找出中点前半待查信息的值小于中点元素值,则找出中点前半 部

    10、分的中点元素,反之找出后半部分的中点元部分的中点元素,反之找出后半部分的中点元 素,再进行比较,然后再折半,直到区间无法继素,再进行比较,然后再折半,直到区间无法继 续二分续二分 但折半法的前提是数据必须事先经过排序但折半法的前提是数据必须事先经过排序 16 2021/2/11 int main() int scoreARR_SIZE=0, i; int low,high,mid; printf(Please enter scores:); for(i=0;iARR_SIZE;i+) scanf(%d, printf(Please enter the searching number:); s

    11、canf(%d, 17 2021/2/11 low = 0; high = ARR_SIZE - 1; while(low = high) mid = (low + high)/2; if(num scoremid) low = mid + 1; else printf(No %d,mid); return 0; 18 2021/2/11 按从高到低的分数对全班同学的成绩进行排序按从高到低的分数对全班同学的成绩进行排序 算法:算法: 冒泡法冒泡法 选择法选择法 对全班的高数成绩进行排序对全班的高数成绩进行排序 19 2021/2/11 核心思想核心思想 将相邻元素进行比较,较小(较大)的放在前

    12、面将相邻元素进行比较,较小(较大)的放在前面 冒泡法排序冒泡法排序 5 6 7 8 6 5 7 8 6 7 5 8 6 7 8 5 6 7 8 7 6 8 7 8 8 7 6 5 7 8 6 int main() int scoreARR_SIZE = 0,i,j,temp; for(i=0;i ARR_SIZE - 1;i+) for(j=0;jARR_SIZE-i;j+) if(scorejscorej+1) temp = scorej; scorej = scorej+1; scorej+1 = temp; return 0; 核心代码核心代码 21 2021/2/11 冒泡法核心思想冒

    13、泡法核心思想 共有共有m个数,则需进行个数,则需进行m-1轮比较,每轮比较完轮比较,每轮比较完 成后,最大成后,最大(小小)的值沉底,每轮比较交换的值沉底,每轮比较交换m-i次次 外层循环控制比较轮数,内层循环控制交换次数外层循环控制比较轮数,内层循环控制交换次数 5 6 7 8 6 5 7 8 6 7 5 8 6 7 8 5 7 6 8 5 7 8 6 5 7 8 6 5 1 2 3 8 7 6 5 22 2021/2/11 交换法排序交换法排序 23 2021/2/11 24 2021/2/11 int main() int scoreARR_SIZE=0,i,j,k,temp; for(

    14、i=0;iARR_SIZE;i+) k = i; /*假设第假设第i个元素最大个元素最大*/ for(j=i+1;jARR_SIZE;j+) if(scorekscorej) k=j; if(k!=i) temp = scorek; scorek = scorej; scorej = temp return 0; 核心代码核心代码 26 2021/2/11 第第i轮比较时,假设本论第一个待比较元素最轮比较时,假设本论第一个待比较元素最 大,然后找出大,然后找出i+1后面的所有数中最大的数,后面的所有数中最大的数, 将其下标值赋给将其下标值赋给k,再用再用k和和i进行比较,如果进行比较,如果k

    15、不等于不等于i,说明假设不成立,将说明假设不成立,将k所对应的数和所对应的数和 所所对应的数据进行交换所所对应的数据进行交换 相较冒泡法排序,该算法虽然比较的次数不相较冒泡法排序,该算法虽然比较的次数不 变,但是变,但是交换的次数交换的次数最多最多只有只有i-1次次。 交换法核心思想交换法核心思想 27 2021/2/11 作业作业 分别用选择法和冒泡法对数组进行排序分别用选择法和冒泡法对数组进行排序 在排序后用折半法查找数组中是否有元素值在排序后用折半法查找数组中是否有元素值 为为77,如果有,输出该元素的下标,如果有,输出该元素的下标 下面程序模拟了骰子的下面程序模拟了骰子的6000次投掷

    16、,用次投掷,用 rand()函数产生函数产生1-6之间的随机数之间的随机数face,然后,然后 统计统计1-6每一面出现的机会每一面出现的机会(概率概率)存放到数组存放到数组 frequency中中 #include #include #include int main() int face, roll, frequency7 = 0; srand(time(NULL); for (roll = 1;roll = 6000;roll+) face = ; + ; printf(%4s%17sn,Face,Frequency); for (face = 1;face = 6; face+) printf(%4d%17dn,face,frequencyface); return 0; 29 2021/2/11 测试结果测试结果

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言一维数组.ppt
    链接地址:https://www.163wenku.com/p-1107567.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库