ImageVerifierCode 换一换
你正在下载:

数组.docx

[预览]
格式:DOCX , 页数:6 ,大小:16.85KB ,
资源ID:2145006      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2145006.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数组.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数组.docx

1、数组数 组【引例:任意读入3个整数,然后逆序输出。】main()int x,y; scanf(“%d%d”,&x,&y); printf(“%d,%dn”, y,x);【数据量增大时,数据之间的关系若组织不当,即使算法再简单,程序都难以编写。因此引入新的数据结构(即数据间的组织)数组。】数组的特点“有限、有序、同类”。【用数组改写上例】#define N 3main()int aN,k; for(k=0;k=0;k-) printf(“%dn”, ak);一、一维数组1定义 类型名 数组名整型常量;2说明(1)数组名即与变量命名规则一样。(2)定义时的内只能是正整型常量。表示数组所含成员(元素

2、)的个数。(3)数组各元素被分配在连续空间中,低字节中存放数组的第一个元素,下标为0。int a5;则数组a含有5个元素:a0、a1、a2、a3、a4。(4)TC系统对数组下标越界不报错。注意:下标必须在0个数-1之间!int n=5;int an; /*n是变量*/(5)数组名就是数组的首地址,即第一个元素的地址。数组名是一个常量。int a5;则 a等价于&a0【结论:数组的每一个元素相当于同类型的一个普通变量。】二、数组元素的输入输出1、数组元素初始化(1)所有元素在定义时获得值int a3=1,3,5;或int a =1,3,5;以上两种形式完全等价,即给所有元素初始化时,可以将内的常

3、量省略。*所给值的个数不能多于数组元素个数。(2)部分元素在定义时获得值int a5=2,4;则a0获值2,a1获值4,而其余元素全都获值0。【本学期的定义格式情况下,数组定义时若没有被初始化,则所有元素都没有值(或有不确定值);而一旦前面若干元素在定义时获得值,则其后所有元素都有默认值0。】2、数组元素在定义之后获得值(1)获得有规律的值一般情况,各元素值与其下标有函数关系。例如:让数组元素获得从2开始的连续偶数。int a10, k;for(k=0;k=9;k+) ak=2*(k+1);通常使用循环语句,循环体为赋值语句。(2)获得无规律的值通常使用循环语句,循环体为scanf函数语句。f

4、or(k=0;k10;k+) scanf(“%d”, &ak);3、数组元素的输出(1)所有元素都被输出,用循环for(k=0;k10;k+) printf(“%5d”, ak);(2)输出部分元素三、一维数组的常用算法1、求最大值、最小值算法例1.任意读入10个整数,输出其中的最大数。#define N 10main()int aN, k, max; for(k=0;kN;k+)scanf(“%d”,&ak);max=a0;/*总是将第一个或最后一个元素认为就是最大的*/for(k=1;kmax) max=ak;printf(“MAX=%dn”,max);2、递推(猴子吃桃)【输出时,以前只

5、能从第9天输出到第1天;如今可以随意任意一天的桃子数。】main()int a11,k; /*想让a1存放第一天的桃子数,a10 存放第10天的桃子数。a0浪费了*/a10=1;for(k=9;k=1;k-) ak=2*(ak+1+1);for(k=1;k=10;k+) printf(“%d:%dn”,k,ak);3、查找(1)顺序查找(线性查找)例1. 任意读入10个整数,看看其中是否有数值99,若有,输出是第一个读入的;否则,输出“wu”。【算法要领:拿关键值与每一个元素进行比较,一旦找到即跳出循环】本题忽略了有相同值的情况,即找到第一个相等值就终止。main()int a10,k for

6、(k=0;k10;k+) scanf(“%d”,&ak); /*以下用循环查找*/ for(k=0;k10;k+) if(ak=99) break; if(ak=99) /* k10或 k!=10*/ printf(“%dn”, k+1); else printf(“wun”);/*用while改写*/main()int a10,k for(k=0;k10;k+) scanf(“%d”,&ak); k=0;/*查找应该在指定范围内!*/ while(k10&ak!=99) k+; /*范围控制在前*/ if(ak=99) /* khigh时,表示找不到。】例如:已有10个按升序排列的数据,任意

7、读入一个数,看10个有序数中有无与之相等的数。main()int a10=-90,-79,-68,-57,-44,-32,-29,-10,-9,-5; int k,low=0,high=9,mid; int x; scanf(%d,&x); mid=(low+high)/2; while(amid!=x&lowamid) low=mid+1; if(xamid) high=mid-1; mid=(low+high)/2; if(amid=x) /*low=high*/ printf(Foundn); else printf(Not foundn);4、排序(1)冒泡排序(起泡)【算法要领:n个

8、数最多处理n-1趟,每一趟比前一趟少比较一次。每趟中从头到尾(或从尾到头)两两相邻的元素进行比较,升序时,前者大后者小则交换】例如:任意读入10个整数,升序排列后输出。#define N 10main()int aN,k,t,n; for(k=0;kN;k+) scanf(“%d”,&ak); /*外循环控制趟数*/ for(n=1; n=N-1;n+) /*内循环控制每趟的比较次数*/ for(k=0;kak+1)/*注意不让ak+1越界*/ t=ak;ak=ak+1;ak+1=t; for(k=0;kN;k+) printf(“%6d”, ak);(2)选择法排序【算法要领:n个数最多处理n-1趟,第一趟,找出最小数(升序排列)与第一个元素交换值;第二趟,找出除第一个元素以外的最小数(升序排列)与第二个元素交换值;】

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1