• / 53
  • 下载费用:10 金币  

第5章-c语言-构造数据类型.ppt

关 键 词:
语言 构造 数据类型
资源描述:
北京交通大学计算机学院计算机程序设计基础课程组,第5章 构造数据类型,教学目标,了解数组数据结构 熟悉数组定义,初始化和引用数组元素 掌握数组作为函数参数的作用 掌握基本排序方法 能够使用常用的字符处理函数 了解结构体数据结构,,,,,,,5.1 数组概述5.2 一维数组5.3 数组作函数的参数5.4 一维数组应用5.5 多维数组5.6 字符数组与字符串5.7 结构体,,,5.1 数组概述,构造数据类型之一定义:数组是有序数据的集合组成数组的数据称为数组的元素数组的每个元素都属于同一个数据类型每个数组要用一个统一的标识符标识,,,,,,,,,定义引用初始化输入和输出,5.2 一维数组,,,,,,,,定义,类型说明符 数组名[常量表达式]; 一维 二维 int a[5]; int a[3][4]; char c[20]; char c[2][3]; float x[10]; float x[2][3];,,,,,,引用,数组必须先定义,后使用。只能逐个引用数组元素。例如,定义数组 int a[3],数组元素为: a[0] a[1] a[2],,,,引用形式: 一维 数组名[下标];例如:a[2]=1; b[0][1]=5; a[i+j];(i,j为整型变量),,,例5.1 使用数组编程,计算出前10项fibonacci数列,要求一行打印5个数。,main(){ int f[10]; int i; f[0]=0; f[1]=1; for(i=2;i<10;i++) f[i]=f[i-1]+f[i-2];,for(i=0;i<10;i++) {if(i%5==0) printf("\n"); printf("%4d",f[i]); } },,,,,,,初始化,顺序指定全部元素的初始值 int a[5]={1,2,3,4,5}; 指定部分元素的初始值 int a[5]={0,0,1};以上语句只给数组a的前面三个元素赋了初始值,未赋初值的元素的值在此默认为0;,,,,,,,,初始化时不指定数组元素的个数int b[]={1,2,3}; 若初值的个数小于数组元素的个数,则初始化时不能省略数组元素的个数,初值的个数不能大于数组元素的个数。,,,,,,,输入和输出,C语言规定,对数组的使用只能逐个引用数组元素,不能一次引用整个数组。同样,对数组的输入和输出也是依次对每个元素进行的。 例5.2 输入10个数,并将它们输出。,,,,,printf("please enter the data:\n"); for(i=0;i<10;i++) scanf("%d",,printf("output the data:\n"); for(i=0;i<10;i++) printf("%d ",array[i]); printf("\n"); },输入,输出,,,,,,,,5.3 数组作函数的参数,数组名表示数组在内存中存放的起始地址(首地址),即数组第一个元素的地址。数组名作为函数的参数传递的是数组的起始地址,属于“地址传递”方式。因为传递了数组的起始地址,所有被调函数能够准确地知道该数组的存储位置,因此,被调用函数在函数体中修改形参数组元素时就是在修改实际的数组元素。,,例5.3 使用数组作函数的参数。 #include #define SIZE 6void main(){ void modifyArray(int [] , int); void modifyElement(int); int a[SIZE] = { 1 , 2 , 3 , 4 , 5 , 6 };int i;printf("数组元素的原始值为:\n");for( i = 0 ; i < SIZE ; i++)printf("%3d", a[i]);printf("\n");modifyArray(a , SIZE); /* 以地址传递方式传递数组 */,printf("调用modifyArray函数后数组元素的值为:\n");for( i = 0 ; i < SIZE ; i++)printf("%3d", a[i]);printf("\n数组元素a[2]的值为 %d\n",a[2]); modifyElement(a[2]); /* 以值传递方式传递数组元素 */printf("数组元素a[2]的值为 %d\n",a[2]); } void modifyArray(int b[] , int size) /* 函数定义 */{ int j; for(j=0; j< size; j++) b[j] *= 2; } void modifyElement(int m) /* 函数定义 */{ int n; n = m * 2; printf("在函数modifyElement中的值为 %d\n", n ); },,,,,,,,排序数据查找数据统计分析,5.4 一维数组应用,,,,,,排序排序的方法很多,主要有: 冒泡法 选择法 比较交换法 希尔法 插入法例5.4 用冒泡法对10个整数按从小到大的顺序排列。,,,,冒泡法,排序过程:比较第一个数与第二个数,若a[0]>a[1],则交换;然后比较第二个数与第三个数,若a[1]>a[2],则交换;依次类推,直至第n-1个数和第n个数比较为止。第一轮结束时,结果最大的数被安置在最后一个位置上。对前n-1个数进行第二轮排序,结果使次大的数被安置在第n-1个元素位置重复上述过程,共经过n-1趟冒泡排序后,排序结束算法的整体思路是让大的数不断地往下沉,小的数不断地往上冒,所以叫“冒泡排序法”,int a[5] n a[0] a[1] a[2] a[3] a[4] 第一轮 21 13 90 32 -1,,,,,13 21 90 32 -1,13 21 32 90 -1,第二轮 ......,13 21 90 32 -1,13 21 32 -1 90,for( i=1; i a[j+1] ) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } },#include #define N 10void main() {int a[N] , i , j , temp;printf("请输入10个数:\n");for( i = 0 ; i < N ; i++)scanf("%d", },,,选择法:,基本思想:将第一个元素与第二个到第n个中最小者a[p]交换(如果a[p]
展开阅读全文
  麦档网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:第5章-c语言-构造数据类型.ppt
链接地址:https://www.maidoc.com/p-1816.html

当前资源信息

佳佳

编号: 20180301230102418212

类型: 共享资源

格式: PPT

大小: 207.50KB

上传时间: 2018-03-01

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2018-2020 maidoc.com版权所有  文库上传用户QQ群:3303921 

麦档网为“文档C2C模式”,即用户上传的文档所得金币直接给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的金币归上传人(含作者)所有。
备案号:蜀ICP备17040478号-3  
川公网安备:51019002001290号 

本站提供办公文档学习资料考试资料文档下载


收起
展开