c语言配套教学教案c语言ch07

上传人:清晨86****784 文档编号:205196528 上传时间:2021-10-28 格式:PPT 页数:46 大小:748KB
返回 下载 相关 举报
c语言配套教学教案c语言ch07_第1页
第1页 / 共46页
c语言配套教学教案c语言ch07_第2页
第2页 / 共46页
c语言配套教学教案c语言ch07_第3页
第3页 / 共46页
c语言配套教学教案c语言ch07_第4页
第4页 / 共46页
c语言配套教学教案c语言ch07_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《c语言配套教学教案c语言ch07》由会员分享,可在线阅读,更多相关《c语言配套教学教案c语言ch07(46页珍藏版)》请在金锄头文库上搜索。

1、第七章第七章数数 组组吴良杰吴良杰Harbin Engineering UniversityHarbin Engineering University实例实例例:输入例:输入1010个学生的成绩,计算平均成绩,并统计个学生的成绩,计算平均成绩,并统计成绩高于平均成绩的人数。成绩高于平均成绩的人数。如何计算平均成绩?在循环中已解决。如何计算平均成绩?在循环中已解决。如何统计高于平均成绩的人数?如何统计高于平均成绩的人数?用每个人的成绩与平均成绩比较用每个人的成绩与平均成绩比较如何存储每个人的成绩?如何存储每个人的成绩?批量数据的存储。批量数据的存储。用变量存储:变量之间无联系,不方便操作。用变量

2、存储:变量之间无联系,不方便操作。解决方法:使用数组。解决方法:使用数组。#include void main()int i,n,k=0; float a10,s=0,ave; n=10; for(i=0;in;i+) scanf(%f,&ai); s=s+ai; ave=s/n; for(i=0;i=ave) k+; printf(%dn,k);#include void main()int k=0; float j1,j2,j3,j4,j5,j6,j7,j8,j9,j10, s=0,a; scanf(%f,&j1); scanf(%f, &j2); scanf(%f, &j3); scan

3、f(%f, &j4); scanf(%f, &j5); scanf(%f, &j6); scanf(%f, &j7); scanf(%f, &j8); scanf(%f, &j9); scanf(%f, &j10); s=j1+j2+j3+j4+j5+j6+j7+j8+j9+j10; a=s/10; if(j1=a) k+; if(j2=a) k+; if(j3=a) k+; if(j4=a) k+; if(j5=a) k+; if(j6=a) k+; if(j7=a) k+; if(j8=a) k+; if(j9=a) k+; if(j10=a) k+; printf(%dn,k);使用数组

4、,简化程序。实例实例例:输入三个整数例:输入三个整数a a、b b、c c,按降序排序后输出。,按降序排序后输出。思路:思路:a a存放最大数;存放最大数;b b存放中间数;存放中间数;c c存放最小数存放最小数; ; 输出输出a a、b b、c c。实现实现: 若若abab:交换:交换a a、b b的值;的值; 若若acac:交换:交换a a、c c的值;的值; 若若bcbc:交换:交换b b、b b的值;的值; 输出输出a a、b b、c c。括充:四个数括充:四个数a a、b b、c c、d d排序?排序? 十十个数如何排序?个数如何排序?实例实例1010个数排序:个数排序: 给给101

5、0个数统一命名:如个数统一命名:如 a;a; 如何表示某个数:加序号,如如何表示某个数:加序号,如0 0、1 1、210210 a0 a0、 a1 a1 、a2 a9a2 a9 用以上方法表示的一组数称为用以上方法表示的一组数称为数组数组。 排序过程:排序过程: 1 1)在)在a0 a9a0 a9之间找最大的,与之间找最大的,与a0 a0 交换;交换; 2 2)在)在a1 a9a1 a9之间找最大的,与之间找最大的,与a1 a1 交换;交换; 9 9)在)在a8 a9a8 a9之间找最大的,与之间找最大的,与a8 a8 交换;交换;实例实例#include #include #define n

6、 10#define n 10void main()void main()int i,j,k,a10,m;int i,j,k,a10,m; for(i=0;in;i+) scanf(%d,&ai);for(i=0;in;i+) scanf(%d,&ai); for(i=0;in-1;i+) for(i=0;in-1;i+) m=i; m=i; for(j=i+1;jn;j+)for(j=i+1;j=am) if(aj=am) m=j;m=j; k=ai; ai=am; am=k; k=ai; ai=am; am=k; for(i=0;in;i+)for(i=0;in;i+) printf(%4

7、d,ai); printf(%4d,ai); 数组的概念数组的概念批量数据是一组具有相同数据类型的数据的有序集合。 数组数组 一个班学生的学习成绩一行文字一个矩阵这些数据的特点是:1、具有相同的数据类型2、使用过程中需要保留原始数据 C语言为这些数据,提供了一种构造数据类型:数组。数组的概念数组的概念1. 1. 数组:一组具有数组:一组具有相同数据类型相同数据类型的数据的的数据的有序有序集合集合。 例如:一个班级某课程的成绩。例如:一个班级某课程的成绩。 特点:有共同的类型、共同的名字。特点:有共同的类型、共同的名字。2. 2. 数组元素:数组中的成员。数组元素:数组中的成员。3. 3. 种类

8、:一维数组、二维数组、字符数组种类:一维数组、二维数组、字符数组 一维数组:元素按线性排列。一维数组:元素按线性排列。 二维数组:元素按行列排列。二维数组:元素按行列排列。4. 4. 下标:数组元素在数组中的位置或序号。下标:数组元素在数组中的位置或序号。 一维数组:一维数组:1 1个下标个下标 二维数组:二维数组:2 2个下标个下标( (行、列行、列) )数组的定义数组的定义n n一维数组的定义一维数组的定义(1) (1) 形式:形式:类型说明符类型说明符 数组名数组名 常量表达式常量表达式 例如:例如:int g145 float b20int g145 float b20(2) (2)

9、说明:说明: 类型说明符:指明数组中各数据的类型。类型说明符:指明数组中各数据的类型。 int float charint float char 数组名:指明数组的标识符。命名规则同变量名数组名:指明数组的标识符。命名规则同变量名。 常量表达式:指明数组的大小。即数组元素个数常量表达式:指明数组的大小。即数组元素个数。 下标的取值范围:下标的取值范围:0n-10n-1数组的定义数组的定义n n二维数组的定义二维数组的定义(1) (1) 形式:形式: 类型说明符类型说明符 数组名数组名 常量表达式常量表达式1 1 常量表达式常量表达式2 2 例如:例如:int g2453 float c205i

10、nt g2453 float c205(2) (2) 说明:说明: 常量表达式常量表达式1 1:指明数组的行数。:指明数组的行数。 常量表达式常量表达式2 2:指明数组的列数。:指明数组的列数。 数组元素个数:数组元素个数:m*nm*n 下标的取值范围:行:下标的取值范围:行:0m-1 0m-1 列:列:0n-10n-1数组元素的表示数组元素的表示1. 1. 一维数组一维数组 形式:形式:数组名数组名 下标下标 例如:例如:g123 g110g123 g1102. 2. 二维数组二维数组 形式:形式:数组名数组名 行下标行下标 列下标列下标 例如:例如:a150 a2352a150 a2352

11、3. 3. 说明说明 下标应为整型表达式,且取值范围为下标应为整型表达式,且取值范围为0n-10n-1。 n: n: 一维数组的元素或二维数组的行、列数。一维数组的元素或二维数组的行、列数。数组的存储数组的存储一个数组的各个元素占用一片连续的内存单元。1. 一维数组 各元素按下标顺序占用存储单元。 例如: int a5a0 a1 a2 a3 a42. 二维数组 按行序存放,行内按列序存放。 例如: int a23a00a01a02a10a11a12每个数据元素占用的字节数,就是基类型的字节数数组的使用数组的使用例:例:一个一维数组一个一维数组, ,初始值为:初始值为:8787、6565、787

12、8、9292、8484。将每个元素的值除。将每个元素的值除1010后输后输出。出。分析分析:初始值的设置初始值的设置对元素的处理过程对元素的处理过程元素值的输出元素值的输出初始化赋值a0=a0/10a1=a1/10a2=a2/10a3=a3/10a4=a4/10for(i=0;i5;i+) ai=ai/10;printf(“%d”,a0);printf(“%d”,a1);printf(“%d”,a2);printf(“%d”,a3);printf(“%d”,a4);for(i=0;i0)if(aa20) while(aa32) while(aa32) 数组的使用数组的使用数组的赋值数组的赋值

13、在程序的执行部分,只能通过给在程序的执行部分,只能通过给数组元素数组元素赋值实赋值实现对现对数组整体数组整体的赋值。的赋值。 例如:将一个有例如:将一个有2020个元素的一维数组赋值为个元素的一维数组赋值为120120的数值,然后输出。的数值,然后输出。void main( )int a20,i; for(i=0;i20;i+) ai=i+1; for(i=0;i20;i+) printf(“%d”,ai);int a20;a0=1;a1=2;a2=3;a19=20;ai=i+1数组的使用数组的使用数组的输入、输出数组的输入、输出 使用循环结构控制输入、输出数组的全部或部分使用循环结构控制输入

14、、输出数组的全部或部分元素。元素。 一维数组:使用一层循环一维数组:使用一层循环 二维数组:使用双层循环二维数组:使用双层循环void main( )int a =1,2,3,4,5,6,i; for(i=0;i6;i=i+2) printf(“%d”,ai); void main( )int a 3=1,2,3,4,5,6,i,j; for(i=0;i2;i+) for(j=0;j 字符串字符串2 2,函数值为一正整数。,函数值为一正整数。(3) (3) 如果字符串如果字符串1 1 字符串字符串2 2,函数值为一负整数。,函数值为一负整数。字符数组字符数组字符串函数字符串函数6.6. str

15、len strlen函数函数 形式形式 :strlenstrlen ( (字符数组字符数组) ) 作用:测试字符串长度的函数。函数的值为字作用:测试字符串长度的函数。函数的值为字符串中的实际长度符串中的实际长度( (不包括不包括00在内在内) )。 如:如:char str10=China;char str10=China; printf(%d printf(%d,strlen(str);strlen(str); 直接测试字符串常量的长度,如直接测试字符串常量的长度,如 strlen(China)strlen(China);字符数组字符数组字符串函数字符串函数7. 7. strlwrstrlw

16、r函数函数 形式:形式:strlwr (strlwr (字符串字符串) ) 作用作用: : 将字符串中大写字母换成小写字母。将字符串中大写字母换成小写字母。8. strupr8. strupr函数函数 形式:形式:strupr (strupr (字符串字符串) ) 作用作用: : 将字符串中小写字母换成大写字母。将字符串中小写字母换成大写字母。 数组作函数参数数组作函数参数#include “stdio.h”#include “stdio.h”void main()void main()int com(int a,int b);int com(int a,int b); int a10,b10,m=0,i; int a10,b10,m=0,i; for(i=0;i10;i+) scanf(“%d”,&ai); for(i=0;i10;i+) scanf(“%d”,&ai); for(i=0;i10;i+) scanf)”%d”,&bi); for(i=0;i10;i+) scanf)”%d”,&bi); for(i=0;i10;i+) for(i=0;i10;i+) if(com(ai

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号