C语言课件第07章-数组.ppt
《C语言课件第07章-数组.ppt》由会员分享,可在线阅读,更多相关《C语言课件第07章-数组.ppt(58页珍藏版)》请在三一办公上搜索。
1、第7章 数 组 array,第7章 数 组,记录1个学生成绩,可用int s1;记录2个学生成绩,可用int s1,s2;记录3个学生成绩,可用int s1,s2,s3;记录100个数,用int s1,s2,s100;?,如何处理有相同属性的批量数据呢?,数组,int score100;,代表一个元素个数为100的整型数组score0,score1,score2,.,score99 100个整型变量,数组计数从0开始,第7章 数 组,基本数据类型:char int float double,一个基本数据类型的变量一次只能存储一个数值,构造数据类型,由基本数据类型通过一定的规则组合而成,亦称导出
2、类型。,数组就属于构造数据类型,用数组一次可以表示一批属于相同数据类型的数据。,int score100;,定义一个数组score100后,内存中将开辟连续的100个int的空间单元,存储int 变量score0,score99,1.一维数组的定义和引用(p121),1)定义 类型名 数组名数组长度;,int a10;定义一个含有10个整型元素的数组 achar c200;定义一个含有200个字符元素的数组 cfloat f5;定义一个含有5个浮点型元素的数组 f,先定义,后使用 只能引用单个的数组元素,不能一次引用整个数组数组名下标下标:整型表达式取值范围:0,数组长度-1int a10;1
3、0个元素:a0、a1、a9 数组元素的使用方法与同类型的变量相同scanf(%d,2)引用,1.一维数组的定义和引用,区分数组的定义和数组元素的引用,内的是数组元素的下标下标可以是一个整型表达式下标的值不能越界,0.N1,内的是数组的长度数组长度必须是常量(表达式)一旦指定,就不能改变,定义数组 类型名 数组名数组长度;int a10;,引用数组元素 数组名下标,a0=a9=0;ak=temp;,2.一维数组的初始化(p122),静态数组初始化static int b5=1,2,3,4,5;,在定义数组时,对数组元素赋初值 类型名 数组名数组长度=初值表;,int a10=1,2,3,4,5,
4、6,7,8,9,10;a0=1,a1=2,.a9=10,静态存储的数组如果没有初始化,所有元素自动赋0,动态存储的数组如果没有初始化,所有元素视为随机值.如:auto int c5;或 int c5;在引用前必须赋初值。,首先考虑是否给变量赋初值是编程的好习惯!,一维数组的初始化,针对部分元素的初始化,int b5=1,2,3;b0=1,b1=2,b2=3,b3=0,b4=0,如果对全部元素都赋初值,可以省略数组长度 int a=0,1,2 等价于 int a3=0,1,2,实际编程最好不要省略数组长度,在TC,VC中,其余元素实际值是被赋值为0,例 7-2 用数组计算 fibonacci 数
5、列的前20个数,并按每行打印5个数的格式输出。1,1,2,3,5,8,分析:用数组计算并存放 fibonacci 数列的前20个数 int f20;f0=f1=1;fn=fn-1+fn-2;2n19,3 使用一维数组编程,例 7-2 源程序,#include int main(void)int i;int fib20=1,1;/*数组初始化*/for(i=2;i 20;i+)fibi=fibi-1+fibi-2;for(i=0;i 20;i+)printf(%6d,fibi);if(i+1)%5=0)/*5个数换行*/printf(n);return 0;,例7-3 在数组中查找一个给定的数,
6、要求:输入5个互异的整数,将它们存入数组a中,再输入一个数x,然后在数组中查找x,如果找到,输出相应的下标,否则,输出“Not Found”。,输入:2 9 8 1 6 9输出:1输入:2 9 8 1 6 7输出:Not Found,例 7-3 源程序,#include int main(void)int i,flag,x;int a5;printf(Enter 5 integers:);for(i=0;i 5;i+)scanf(%d,Enter 5 integers:2 9 8 1 9Enter x:9Index is 1,如果允许输入相同的数,Enter 5 integers:2 9 8
7、1 9Enter x:9Index is 1Index is 4,输出所有满足条件的数的下标,#include int main(void)int i,index,x;int a5;printf(Enter 5 integers:);for(i=0;i 5;i+)scanf(%d,例 7-3 思考,Enter 5 integers:2 9 8 1 9Enter x:9Index is 4,若要求输出最后一个相同数的下标,例 7-3 思考,#include int main(void)int i,flag,x;int a5;printf(Enter 5 integers:);for(i=0;i
8、5;i+)scanf(%d,Enter 5 integers:2 9 8 1 9Enter x:9Index is 4,若要求输出最后一个相同数的下标,for(i=4;i=0;i-),例7-4 求最小值,要求:输入一个正整数n(n10),再输入n个整数,将它们存入数组a中。(1)输出最小值和它所对应的下标(2)将最小值与第一个数交换,输出交换后的n个数,求最小值的过程:输入 2 9-1 8 1 6=a0,a1,假设min=a0,与i1,n-1所有的数进行比较,如果ai min min=ai;所有的数都比较,一共循环n-1次,例 7-4(1)求最小值,#include int main(void
9、)int i,min,n;int a10;printf(Enter n:);scanf(%d,例7-4 求最小值(2),要求:输入一个正整数n(n10),再输入n个整数,将它们存入数组a中。(1)输出最小值和它所对应的下标(2)将最小值与第一个数交换,输出交换后的n个数,在求最小值的过程中,用index记录最小值对应的下标 aindex就是最小值,#include int main(void)int i,index,n;int a10;printf(Enter n:);scanf(%d,例7-4(2)求最小值及其下标,要使最小值与第一个数交换,例7-4 求最小值(3),要求:输入一个正整数n(
10、n10),再输入n个整数,将它们存入数组a中。(1)输出最小值和它所对应的下标(2)将最小值与第一个数交换,输出交换后的n个数,temp=a0;a0=aindex;aindex=temp;,temp=aindex;aindex=ak;ak=temp;,任意两个数组元素值aindex和ak的交换,5,1,5,aindex=5,ak=1;temp=0;,例 7-1 选择法排序,输入n(n10),再输入n个数,用选择法将它们从小到大排序后输出。设 n=5 3 5 2 8 1,3 5 2 8 1(1)1 5 2 8 3(2)2 5 8 3(3)3 8 5(4)5 8,选择法:每次从未排序的数中通过选择
11、最小数进行排序。,3 5 2 8 1(n=5)5个数(a0a4)中找最小数,与a0交换(1)1 5 2 8 3 a4 a04个数(a1a4)中找最小数,与a1交换(2)1 2 5 8 3 a2 a13个数(a2a4)中找最小数,与a2交换(3)1 2 3 8 5 a4 a22个数(a3a4)中找最小数,与a3交换(4)1 2 3 5 8 a4 a3,选择法(1),选择法(2),(1)5个数(a0a4)中找最小数,与 a0 交换(2)4个数(a1a4)中找最小数,与 a1 交换(3)3个数(a2a4)中找最小数,与 a2 交换(4)2个数(a3a4)中找最小数,与 a3 交换,(1)n个数(a0
12、an-1)中找最小数,与 a0 交换(2)n-1个数(a1an-1)中找最小数,与 a1 交换(n-1)2个数(an-2an-1)中找最小数,与 an-2 交换 an-1,n个数排序,n-1次找最小数以及交换操作,#include int main(void)int i,index,k,n,temp;int a10;printf(Enter n:);scanf(%d,源代码选择法排序,for(i=0;i n;i+)scanf(%d,ai);,数组:相同类型数据的有序集合,在内存中连续存放。,由数组名和下标惟一地确定每个数组元素 每个元素都属于同一类型,在数组中,一批相同类型的变量使用同一个数组
13、变量名,用下标来相互区分。,int a10;,40027 从高位开始逐位输出一个整数的各位数字(选作),if(in0)/*先向左找到最高位的位数*/power=power/10;temp+;k=k*10;power=in;while(temp0)/*再向右计算每位数值*/temp-;k=k/10;digit=power/k;power=power%k;printf(%-2d,digit);,40027 用一维数组实现,int i,digit10,number,temp;while(number!=0)digiti=number%10;i+;number=number/10;temp=i-1;f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 07 数组
链接地址:https://www.31ppt.com/p-5426538.html