《C语言程序设计》课程教学课件(PPT讲稿)第七章 数组

第7章 数组 ·构造数据类型之一 []数组运算符 ·数组:有序数据的集合,用数组名标识 单目运算符 ·元素:属同一数据类型,用数组名和下标确定 优先级(1) §7.1一维数组 左结合 不能用() ★一维数组的定义 必定义方式: 数据类型 数组名[常量表达式]; 例 int a[6]; 合法标识符 表示元素个数 a a[0] 下标从0开始 a1l a[2] 编译时分配连续内存 a[3] 数组名表示内存首地址, 内存字节数=数组维数* 是地址常量 a[4] sizeof元素数据类型) a[5
第7章 数组 •构造数据类型之一 •数组:有序数据的集合,用数组名标识 •元素:属同一数据类型,用数组名和下标确定 §7.1 一维数组 一维数组的定义 ❖定义方式: 数据类型 数组名[常量表达式]; 合法标识符 表示元素个数 下标从0开始 [ ] :数组运算符 单目运算符 优先级(1) 左结合 不能用( ) 例 int a[6]; 0 a[0] 1 4 5 a[1] a[2] a[3] a[4] a[5] 2 3 a 编译时分配连续内存 内存字节数=数组维数* sizeof(元素数据类型) 数组名表示内存首地址, 是地址常量

例int data[5]; data[5]=10; C语言对数组不作越界检查,使用时要注意 数组必须先定义,后使用 》只能逐个引用数组元素,不能一次引用整个数组 数组元素表示形式:数组名下标] 其中:下标可以是常量或整型表达式 例 int af10]; printf"d",a); (x) 必须 for(j=0;j<10;j++) printfd\t”,a[j]);
一维数组的引用 ❖数组必须先定义,后使用 ❖只能逐个引用数组元素,不能一次引用整个数组 ❖数组元素表示形式: 数组名[下标] 其中:下标可以是常量或整型表达式 例 int i=15; int data[i]; (不能用变量定义数组维数) 例 int a[10]; printf(“%d”,a); () 必须 for(j=0;j<10;j++) printf(“%d\t”,a[j]); () 例 int data[5]; data[5]=10; //C语言对数组不作越界检查,使用时要 注意

一维数组的初始化 冬初始化方式 inta[5]={1,2,3,4,5}; 等价于:a[0]=1,a[1]=2,a[2]=3;a[3]=4;a[4]=5; 说明: ●数组不初始化,其元素值为随机数 ●对static数组元素不赋初值,系统会自动赋以0值 ●只给部分数组元素赋初值 ●出人立取数细=表三m估什T不些完站如上在 「P1 inta0={1,2,3,4,5,6}; 0 编译系统根据初值个数确定数组维数
一维数组的初始化 ❖初始化方式 在定义数组时,为数组元素赋初值 (在编译阶段使之得到初值) int a[5]={1,2,3,4,5}; 等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; ❖说明: ⚫数组不初始化,其元素值为随机数 ⚫对static数组元素不赋初值,系统会自动赋以0值 ⚫当全部数组元素赋初值时,可不指定数组长度 如 int a[5]={6,2,3}; 等价于: a[0]=6; a[1]=2;a[2]=3; a[3]=0; a[4]=0; 如 int a[3]={6,2,3,5,1}; () static int a[5]; 等价于:a[0]=0; a[1]=0; a[2]=0; a[3]=0; a[4]=0; ⚫只给部分数组元素赋初值 int a[]={1,2,3,4,5,6}; 编译系统根据初值个数确定数组维数

程序举例 #include #define SIZE 10 例读10个整数存入数 mainO) int x[SIZE],i,max,min; printf("Enter 10 integers:n"); for(i=0;ix[],令min= if(min>x[i])min=x[i]; 3.输出:max和min printf("Maximum value is %d n",max); printf("Minimum value is %d n",min);
程序举例 例 读10个整数存入数组,找出其中最大值和最小值 步骤: 1. 输入:for循环输入10个整数 2. 处理: (a) 先令max=min=x[0] (b) 依次用x[i]和max,min比较(循环) 若maxx[i],令min=x[i] 3. 输出:max和min #include #define SIZE 10 main() { int x[SIZE],i,max,min; printf("Enter 10 integers:\n"); for(i=0;ix[i]) min=x[i]; } printf("Maximum value is %d\n",max); printf("Minimum value is %d\n",min); }

F1=1 (n=1) 例用数组求Fibonacci数列前20个数 F2=1 (m=2) F,n=1+-2 (n≥3) #include <stdio.h main() 0 f[0] 1 int i; 2 intf[20]={1,1}; 2] 3 for(i=2;i<20;i++) 3 f fli]=fli-2]+fli-1] 4 5 f4] for(i=0;i<20;i++) 5 f5] if(i%5=0)printf("\n"); printf("%012d",fli]); 19 f191 19]
例 用数组求Fibonacci数列前20个数 f[0] f[1] f[2] f[3] f[4] f[5] f[19] . 1 1 f[19] 0 1 4 5 2 3 19 2 3 5 #include main() { int i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) { if(i%5==0) printf("\n"); printf("%12d",f[i]); } }

例用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然 后比较第二个数与第三个数;依次类推,直至第-1个数和第 n个数比较为止一 第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-l个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
例 用冒泡法对10个数排序 排序过程: (1)比较第一个数与第二个数,若为逆序a[0]>a[1],则交换;然 后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止——第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束

例 38 38 38 38 13 13 13 13 49 49 49 13 27 27 27 27 65 65 30 30 30 30 38 38 63709 337430770 3710606 49 3 49 65 勒始关键字 巢一趟 第二趟 第三趟 第四趟 第五趟 第六趟 第七趟 8
例 38 49 65 76 13 27 30 97第一趟 38 49 65 13 27 30 76第二趟 38 49 13 27 30 65第三趟 38 13 27 30 49第四趟 13 27 30 38第五趟 13 27 30第六趟 49 38 65 97 76 13 27 30初始关键字 n=8 38 49 76 9713 972 9730 97 13 76 76 7627 30 13 6527 6530 65 13 13 49 4930 4927 3827 380 38 13 27第七趟

#include ali+1]) 输出al]到a[n可 t=ali];ali]=a[i+1];afi+1]-t;} printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf"%d ",a[i]);
输入n 个数给a[1] 到 a[n] for j=1 to n-1 for i=1 to n-j a[i]>a[i+1] 真 假 a[i]a[i+1] 输出a[1] 到 a[n] #include main() { int a[11],i,j,t; printf("Input 10 numbers:\n"); for(i=1;ia[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} printf("The sorted numbers:\n"); for(i=1;i<11;i++) printf("%d ",a[i]); }

例用简单选择法对10个数排序 排序过程: (1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数 交换一第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换一第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束
例 用简单选择法对10个数排序 排序过程: (1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数 交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上 (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录, 将它与第二个数交换—第二趟选择排序 (3)重复上述过程,共经过n-1趟排序后,排序结束

k 例 =1 初始: 13 38 65 76 49 27] k k 2一趟: 13 27 65 97 76 49 38] 二趟: 13 27 [65 97 7649 38] 三趟: 13 27 38 [977649 65] 四趟: 13 273849 [697 65] 五趟: 1327 3849 65 [?76] 六趟: 132738496576[97]
例 初始: [ 49 38 65 97 76 13 27 ] k j i=1 13 49 i=2 一趟: 13 [38 65 97 76 49 27 ] 27 38 二趟: 13 27 [65 97 76 49 38 ] 三趟: 13 27 38 [97 76 49 65 ] 四趟: 13 27 38 49 [76 97 65 ] 五趟: 13 27 38 49 65 [97 76 ] 六趟: 13 27 38 49 65 76 [97 ] k k k k j j j j j j j j j j
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计》课程教学课件(PPT讲稿)第六章 循环控制.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第三章 数据描述.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第四章 最简单的c程序设计——顺序程序设计.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第二章 程序的灵魂——算法.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第一章 C语言概述.ppt
- 《C语言程序设计》课程教学资源(作业习题)选择题样题(无答案).doc
- 《C语言程序设计》课程教学资源(作业习题)习题集(末页含答案).ppt
- 《C语言程序设计》课程教学资源(作业习题)选择填空题(无答案).doc
- 《C语言程序设计》课程教学资源(作业习题)判断题样题(无答案).doc
- 《C语言程序设计》课程实验指导(讲义)实验一 C语言程序设计准备.doc
- 《C语言程序设计》课程实验指导(讲义)实验九 指针与字符串.doc
- 《C语言程序设计》课程实验指导(讲义)实验八 指针及其运算.doc
- 《C语言程序设计》课程实验指导(讲义)实验十 指针与数组.doc
- 《C语言程序设计》课程实验指导(讲义)实验五 数组和字符串.doc
- 《C语言程序设计》课程实验指导(讲义)实验六 函数与变量.doc
- 《C语言程序设计》课程实验指导(讲义)实验七 定义编译预处理.doc
- 《C语言程序设计》课程实验指导(讲义)实验四 循环结构和转移语句.doc
- 《C语言程序设计》课程实验指导(讲义)实验二 顺序结构与输入输出方法.doc
- 《C语言程序设计》课程实验指导(讲义)实验三 各种分支结构.doc
- 《C语言程序设计》课程授课教案(讲义)文件概念.doc
- 《C语言程序设计》课程教学课件(PPT讲稿)第五章 选择结构程序设计.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第九章 预处理命令.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第八章 函数.ppt
- 《C语言程序设计》课程教学课件(PPT讲稿)第十章 指针.ppt
- 《力学》课程教学资源(作业习题)静力学测验(无答案).pdf
- 《力学》课程教学资源(作业习题)运动学模拟试题(无答案).pdf
- 《力学》课程教学资源(作业习题)动力学试题(无答案).pdf
- 《力学》课程教学资源(作业习题)材料力学习题解.doc
- 《力学》课程教学资源(作业习题)材料力学试题(样卷,含答案).doc
- 《力学》课程教学资源(作业习题)工程力学试题(样卷,含参考答案).doc
- 《力学》课程教学资源(PPT课件)材料力学——扭转.ppt
- 《力学》课程教学资源(PPT课件)工程力学——杆件的内力.ppt
- 《力学》课程教学资源(PPT课件)实验力学——静态测量.ppt
- 《数据结构》课程实验指导.pdf
- 《数据结构》课程作业习题(无答案).pdf
- 《微型计算机技术及应用》课程教学大纲 Microcomputer Principle and Its Applications.pdf
- 《微型计算机技术及应用》课程授课教案(讲义)第3章 C51基本语法.doc
- 《微型计算机技术及应用》课程授课教案(讲义)第5章 51单片机的外围模块及应用 5.1 并口.doc
- 《微型计算机技术及应用》课程授课教案(讲义)第2章 51系列单片机系统结构.doc
- 《微型计算机技术及应用》课程授课教案(讲义)第5章 51单片机的外围模块及应用 5.2 定时器及其应用.doc