资源描述:
《C语言教案ch7数组课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C程序设计(第二版)---------------教学课件制作人:黄荧制作人单位:河师大数学与信息科学学院第七章数组数组的学习,标志着你的编程水平是"小学"还是"中学".前者的你只能指挥一个兵("单个数据"),后者的你可以指挥全军万马("大批数据").第七章数组本章内容:1数组的概念2一维数组的定义和引用(重点!!!)2二维数组的定义和引用3字符数组的定义和引用4与数组相关的常用算法(重点!!!)§7.1一维数组一一维数组的定义与使用:一般形式:<类型标识符>数组名[常量表达式]如,inta[10];a是整型数组,
2、数组a包含10个元素,分别用a[0]、a[1]、…、a[9]表示重要特点:1)数组的每一个元素都是一个简单变量2)数组的元素是连续存放的!!!a[0]a[1]a[2]a[3]a[9]...a数组类型数组长度C中的一维数组相当于数学中的向量,有一个下标:a=(a0,a1,a2,…,an)例7.1将0-9放入数组,再按9-0输出数组#includevoidmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d",a[i
3、]);printf("");}简单类型的变量只能存储一个单个的数据。如:整型,实型,实符型等等。结构类型的变量则能存储一组数据。如:数组等等。①给数组的全部元素赋初值:如inta[10]={0,1,2,3,4,5,6,7,8,9};inta[]={0,1,2,3,4,5,6,7,8,9};变量初始化:是指在定义变量的同时给它赋值.②给数组的部分元素赋初值:(其余元素自动赋为0)如:inta[10]={0,1,2,3,4};inta[10]={0,1,2,3,4,0,0,0,0,0};思考:这里的10省略了结果怎
4、样?二一维数组的两种初始化形式三一维数组程序举例:例7.2用数组求Fibonacci数列前20项。f1=1,f2=1,fn=fn-1+fn-2(n≥3)用简单变量实现:#includevoidmain(){longf1,f2;inti;f1=1;f2=1;for(i=1;i<=10;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("");f1=f1+f2;f2=f2+f1;}}用数组实现:(i=2--19)f[i]=f[i-1]+f[i-2]f
5、[0]f[1]…f[19]#includevoidmain(){longf[20]={1,1};inti;for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%4==0)printf("");printf("%12ld",f[i]);}printf("");}例7.3用起泡法对10个整数排序(由小到大)P134算法分析:a0a1a2a3a4a5a0a1a2a3a4a0a1a2a3a0a1a2a0a1注意,这种方法总是相邻两个元
6、素比较!!!"小的上冒,大的下沉"#includevoidmain(){intt,j,i,a[10]={2,4,6,8,4,7,-4,13,6,9};printf("排序前:");for(i=0;i<10;i++)printf("%4d",a[i]);printf("");for(j=0;j<9;j++)//9趟比较for(i=0;i<9-j;i++)//第j趟中的比较if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("排序后:")
7、;for(i=0;i<10;i++)printf("%4d",a[i]);printf("");}例求一维数组中数据的最大值及位置。a0a1a2…an-1max=a0p=0…#includevoidmain(){inti,max,p,a[10]={2,4,6,18,4,67,-14,13,6,9};printf("数组a:");for(i=0;i<10;i++)printf("%4d",a[i]);printf("");max=a[0];p=0;for(i=1;i<10;i++)if(
8、a[i]>max){max=a[i];p=i;}printf("max=a[%d]=%d",p,max);}例在一维数组中查询数据x。#includevoidmain(){inti,x,a[10]={2,5,7,1,7,4,3,8,9,7};printf("数组a:");for(i=0;i<10;i++)printf("%5d",a