浙江大学C颜晖原版课件C7.pptx
《浙江大学C颜晖原版课件C7.pptx》由会员分享,可在线阅读,更多相关《浙江大学C颜晖原版课件C7.pptx(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、输入 30 个数,将它们排序后输出。数组:相同类型数据的有序集合 在内存中连续存放用数组名和下标唯一地确定数组元素每个元素都属于同一类型s0 1 2 29 s0 s1 s29s0、s1、s2、s29 第1页/共77页一批相同类型的变量使用同一个数组变量名,用下标来相互区分优点:表述简洁,可读性高便于使用循环结构s0 1 2 29 s0 s1 s29第2页/共77页7.1 一 维 数 组7.1.1 一维数组的定义和引用1、定义 类型名 数组名数组长度类型名:数组元素的类型数组名:数组变量的名称(数组),标识符数组长度:常量表达式,给定数组的大小int a10;定义一个含有10个整型元素的数组 a
2、第3页/共77页int a10;定义一个含有10个整型元素的数组 achar c200;定义一个含有200个字符元素的数组 cfloat f5;定义一个含有5个浮点型元素的数组 f第4页/共77页2、数组元素的引用先定义,后使用只能引用单个的数组元素,不能一次引用整个数组数组元素的引用:数组名下标下标:整型表达式取值范围:,数组长度-1int a10;10个元素:a0、a1、a9下标不要越界,不能使用a10第5页/共77页定义数组:类型名 数组名数组长度引用数组元素:数组名下标数组元素的使用方法与同类型的变量相同int k,a10;k=3;a0=23;ak-2=a0+1;scanf(%d,&a
3、9);第6页/共77页区分 定义数组 和引用数组元素定义数组:类型名 数组名数组长度引用数组元素:数组名下标int a10;a0=a1=a9=0;下标不要越界第7页/共77页main()int a10;int i;for(i=0;i 10;i+)a i =i;for(i=0;i 10;i+)printf(%d,ai);输出:0 1 2 3 4 5 6 7 8 9 a0 a1 a9a 0 1 2 3 4 5 6 7 8 9第8页/共77页main()int i;int a10;for(i=0;i 10;i+)scanf(“%d”,&ai);for(i=0;i=0;i-)printf(%d,ai)
4、;输入:1 2 3 4 5 6 7 8 9 10 a0 a1 a9a 1 2 3 4 5 6 7 8 9 10输出:1 2 3 4 5 6 7 8 9 1010 9 8 7 6 5 4 3 2 1第9页/共77页3、程序举例例 7.1 输入10个数,求和.例 7.2 用数组计算fibonacci数列的前20个数,并按每行打印5个数的格式输出。1,1,2,3,5,例7.3 输入5个整数,将它们存入数组a中,再输入1个数x,然后在数组中查找x,如果找到,输出相应的下标,否则,输出“Not Found”。第10页/共77页程序举例例 7.4_1 输入10个数,求最小值.例 7.4_2 输入n(n10
5、),再输入n个数,求最小值。例 7.4_3 输入n(n10),再输入n个数,输出最小值和它所对应的下标。例 7.4_4 输入n(n10),再输入n个数,将最小值与第一个数交换,输出交换后的n个数。例 7.5 输入n(n10),再输入n个数,用选择法将它们从小到大排序后输出。第11页/共77页例 7.1求和输入10个数,求和.main()int i,a10;long sum;for(i=0;i 10;i+)scanf(“%d”,&ai);sum=0;for(i=0;i 10;i+)sum=sum+ai;printf(%ldn,sum);第12页/共77页#include“stdio.h”void
6、 main()int a10,i;long sum=0;for(i=0;i 10;i+)scanf(“%d”,&ai);sum=sum+ai;printf(%ldn,sum);第13页/共77页用数组计算fibonacci数列的前20个数,并按每行打印5个数的格式输出。1,1,2,3,5,8,13,分析:用数组计算并存放fibonacci数列的前20个数f0=f1=1fn=fn-1+fn-2 2n19例 7.2 计算fibonacci数列第14页/共77页main()int i,fib20;fib0=fib1=1;for(i=2;i20;i+)fibi=fibi-1+fibi-2;for(i=
7、0;i20;i+)printf(“%6d,fibi);if(i+1)%5=0)printf(“n);第15页/共77页输入5个整数,将它们存入数组a中,再输入1个数x,然后在数组中查找x,如果找到,输出相应的下标,否则,输出“Not Found”。例7.3查找第16页/共77页输入:2 9 8 9 6 9输出:1void main()int i,x,a5;for(i=0;i5;i+)scanf(“%d”,&ai);scanf(“%d”,&x);for(i=0;i=5)printf(“Not Foundn”);第17页/共77页13void main()int i,x,a5;for(i=0;i5
8、;i+)scanf(“%d”,&ai);scanf(“%d”,&x);for(i=0;i5;i+)if(ai=x)printf(%dn,i);输入:2 9 8 9 6 9输出:第18页/共77页输入:2 9 8 9 6 9输出:3void main()int i,x,sub,a5;for(i=0;i5;i+)scanf(“%d”,&ai);scanf(“%d”,&x);for(i=0;i5;i+)if(ai=x)sub=i;printf(%dn,sub);第19页/共77页输入10个数,求最小值.main()int i,min,a10;for(i=0;i 10;i+)scanf(“%d”,&a
9、i);min=a0;for(i=1;i 10;i+)if(ai min)min=ai;printf(%dn,min);例 7.4_ 1 求最小值第20页/共77页输入n(n10),再输入n个数,求最小值。main()int i,min,n,a10;scanf(“%d”,&n);for(i=0;i n;i+)scanf(“%d”,&ai);min=a0;for(i=1;i n;i+)if(ai min)min=ai;printf(%dn,min);例 7.4_2 求最小值(n个数)第21页/共77页输入n(n10),再输入n个数,输出最小值和它所对应的下标。用index记录最小值对应的下标ain
10、dex就是最小值例 7.4_3 求最小值(下标)第22页/共77页输出最小值和它所对应的下标 N-S流程图输入数组aindex=0for i=1 to n-1ai aindexindex=i输出最小值aindex和下标indexYN第23页/共77页main()int i,min,n,a10;scanf(“%d”,&n);for(i=0;i n;i+)scanf(“%d”,&ai);index=0;for(i=1;i n;i+)if(aiaindex)index=i;printf(%d%dn,aindex,index);第24页/共77页输入n(n10),再输入n个数,将最小值与第一个数交换,
11、输出交换后的n个数。用index记录最小值对应的下标aindex就是最小值最小值与第一个数交换aindex a0例 7.4_4 最小值交换第25页/共77页例 7.5 选择法排序35281输入n(n10),再输入n个数,用选择法将它们从小到大排序后输出。n=5(1)1 5 2 8 3 (2)2 5 8 3 (3)3 8 5 (4)5 8 第26页/共77页3 5 2 8 1 (n=5)5个数(a0a4)中找最小数,与a0交换(1)1 5 2 8 3 a4 a0 4个数(a1a4)中找最小数,与a1交换(2)1 2 5 8 3 a2 a1 3个数(a2a4)中找最小数,与a2交换(3)1 2 3
12、 8 5 a4 a2 2个数(a3a4)中找最小数,与a3交换(4)1 2 3 5 8 a4 a3第27页/共77页(1)n个数(a0an-1)中找最小数,与a0交换(2)n-1个数(a1an-1)中找最小数,与a1交换 (n-1)2个数(an-2an-1)中找最小数,与an-2交换(1)5个数(a0a4)中找最小数,与a0交换(2)4个数(a1a4)中找最小数,与a1交换(3)3个数(a2a4)中找最小数,与a2交换(4)2个数(a3a4)中找最小数,与a3交换第28页/共77页n个数(a0an-1)中找最小数,与a0交换N-S流程图输入数组aindex=0for i=1 to n-1ai
13、aindexindex=iaindexa0YN第29页/共77页N-S流程图(选择排序)输入数组aindex=kfor i=k+1 to n-1ai aindexindex=iaindexakYNfor k=0 to n-2输出数组a第30页/共77页void main()int i,index,k,n,temp,a10;scanf(“%d”,&n);for(i=0;in;i+)scanf(“%d”,&ai);for(k=0;kn-1;k+)index=k;for(i=k+1;in;i+)if(ai aindex)index=i;temp=aindex;aindex=ak;ak=temp;fo
14、r(i=0;in;i+)printf(“%d”,ai);第31页/共77页7.1.2 一维数组的初始化定义数组时,对数组元素赋初值类型名 数组名数组长度=初值表;1.对全部元素赋初值int a10=0,1,2,3,4,5,6,7,8,9;a0=0,a1=1,.a9=9静态数组、全局数组、自动型数组初始化 static int b5=1,2,3,4,5;静态存储的数组如果没有初始化,自动给所有元素赋0 static int b5第32页/共77页2.部分元素初始化static int b5=1,2,3;b0=1,b1=2,b2=3,b3=0,b4=0 auto int fib20=0,1;如果对
15、全部元素都赋初值,可以省略数组长度int a=0,1,2,3,4,5,6,7,8,9;建议不要省略数组长度第33页/共77页7.2 二维数组多维数组的空间想象二维数组:一个表格或一个平面矩阵一维数组:一列长表或一个向量多维数组:多维空间的一个数据列阵三维数组:三维空间的一个方阵第34页/共77页7.2.1 二维数组的定义和引用1、定义类型名 数组名行长度列长度int a32;定义1个二维数组a,3行2列,6个元素int b510;5 行 10 列,50 个元素 第35页/共77页2、数组元素的引用先定义,后使用定义:类型名 数组名行长度列长度数组元素的引用:数组名行下标 列下标行下标的取值范围
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浙江大学 原版 课件 C7
限制150内