(C语言程序设计案例课件)项目四学生成绩的分组汇总.ppt

上传人(卖家):三亚风情 文档编号:3165236 上传时间:2022-07-26 格式:PPT 页数:85 大小:12.47MB
下载 相关 举报
(C语言程序设计案例课件)项目四学生成绩的分组汇总.ppt_第1页
第1页 / 共85页
(C语言程序设计案例课件)项目四学生成绩的分组汇总.ppt_第2页
第2页 / 共85页
(C语言程序设计案例课件)项目四学生成绩的分组汇总.ppt_第3页
第3页 / 共85页
(C语言程序设计案例课件)项目四学生成绩的分组汇总.ppt_第4页
第4页 / 共85页
(C语言程序设计案例课件)项目四学生成绩的分组汇总.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

1、大连理工大学出版社C语言程序设计案例教程 C语言程序设计案例教程 大连理工大学出版社项目四学生成绩的分组汇总v教学目的:教学目的:通过本项目的学习,要求能熟练掌握数组的基本概念,通过本项目的学习,要求能熟练掌握数组的基本概念,熟练掌握一维数组、二维数组和字符数组的定义、赋值,熟熟练掌握一维数组、二维数组和字符数组的定义、赋值,熟练掌握数组的输入和输出方法,掌握字符串和字符数组的不练掌握数组的输入和输出方法,掌握字符串和字符数组的不同特点,掌握数组的排序、查询等基本操作方法。学习数组同特点,掌握数组的排序、查询等基本操作方法。学习数组知识为后续项目做好准备,也为后续面向对象语言课程的学知识为后续

2、项目做好准备,也为后续面向对象语言课程的学习打下基础习打下基础。C语言程序设计案例教程 大连理工大学出版社项目四学生成绩的分组汇总v教学内容教学内容 数组的数组的C C程序引例:通过简单的数组程序引例:通过简单的数组C C程序来引入章节的内容程序来引入章节的内容一维数组的定义和引用一维数组的定义和引用二维数组的定义和引用二维数组的定义和引用字符数组与字符串字符数组与字符串综合实训:通过具体的案例来巩固数组的知识点综合实训:通过具体的案例来巩固数组的知识点 C语言程序设计案例教程 大连理工大学出版社项目四学生成绩的分组汇总重点:重点:()数组的排序()数组的排序 ()一维数组的定义与应用()一维

3、数组的定义与应用难点难点 :、一维数组的定义与应用、一维数组的定义与应用、数组的排序、数组的排序(3 3)二维数组的定义与应用)二维数组的定义与应用 (4 4)字符数组与字符串的应用)字符数组与字符串的应用 v重点和难点重点和难点 C语言程序设计案例教程 大连理工大学出版社项目四学生成绩的分组汇总辅导员张老师在使用小王设计的程序时,发现他要对一个小组学生成绩辅导员张老师在使用小王设计的程序时,发现他要对一个小组学生成绩的总分及平均分进行计算,故张老师找来小王同学,说明了需求,小王根据张的总分及平均分进行计算,故张老师找来小王同学,说明了需求,小王根据张老师的需求,参考了相关的资料,完善了原来的

4、程序,帮助张老师解决了该问老师的需求,参考了相关的资料,完善了原来的程序,帮助张老师解决了该问题。题。C语言程序设计案例教程 大连理工大学出版社项目四学生成绩的分组汇总 实现:实现:/*功能:一个小组学生成绩的总分及平均分的计算功能:一个小组学生成绩的总分及平均分的计算*/#include#define MAX 1000void main()int i;float sum=0.0,ave;int count;int aMAX;printf(“请输入小组的人数:请输入小组的人数:”);scanf(%d,&count);printf(“请输入小组的学生成绩:请输入小组的学生成绩:”);for(i=

5、0;icount;i+)scanf(“%d”,&ai);C语言程序设计案例教程 大连理工大学出版社项目四学生成绩的分组汇总for(i=0;icount;i+)sum=sum+ai;ave=sum/count;printf(该小组学生成绩的总分是该小组学生成绩的总分是%f分分t平均分是平均分是%f分分n,sum,ave);编译、连接、和运行程序。程序运行后,屏幕显示:编译、连接、和运行程序。程序运行后,屏幕显示:C语言程序设计案例教程 大连理工大学出版社项目四学生成绩的分组汇总请输入小组的人数:10请输入小组的学生成绩:60 70 80 90 100 90 80 70 60 100该小组学生成绩

6、的总分是800.000000分 平均分是80.000000分要完成上面的任务,小王必须要熟练掌握数组的基本概要完成上面的任务,小王必须要熟练掌握数组的基本概念,熟练掌握一维数组的定义、赋值,熟练掌握数组的输入念,熟练掌握一维数组的定义、赋值,熟练掌握数组的输入和输出方法。和输出方法。C语言程序设计案例教程 大连理工大学出版社4.1 数组引例 【例例4.1】一个简单的一个简单的C程序数组引例程序数组引例/*源文件名:源文件名:Li4_1.c功能:从键盘输入一个不长于功能:从键盘输入一个不长于20个字符的字符串,按与输入顺序相反的次个字符的字符串,按与输入顺序相反的次序输出此字符串,例如输入序输出

7、此字符串,例如输入dimension,输出,输出noisnemid。*/#include void main()char ch,s20;/*定义定义s字符数组,它最多可以容纳字符数组,它最多可以容纳20个字符个字符*/printf(输入字符串:输入字符串:);/*打印输出一串字符串打印输出一串字符串*/i=0 /*i为统计字符个数为统计字符个数*/do ch=getchar();/*从键盘上输入字符从键盘上输入字符*/C语言程序设计案例教程 大连理工大学出版社4.1 数组引例 If(ch!=n)si+=ch;/*读取的字符存在读取的字符存在s0,s1*/while(i=0;-i)putchar

8、(si);/*反向输出这些字符反向输出这些字符*/putchar(n);编译、连接、和运行程序。程序运行后,屏幕显示:编译、连接、和运行程序。程序运行后,屏幕显示:输入字符串:输入字符串:dimension 反向顺序:反向顺序:noisnemid C语言程序设计案例教程 大连理工大学出版社一个班学生的学习成绩或一行文字等这些数据的特点是:一个班学生的学习成绩或一行文字等这些数据的特点是:具有相同的数据类型具有相同的数据类型使用过程中需要保留原始数据使用过程中需要保留原始数据C语言为这些数据提供了一种构造数据类型:数组。所谓语言为这些数据提供了一种构造数据类型:数组。所谓数组就是一组具有相同数据

9、类型的数据的有序集合数组就是一组具有相同数据类型的数据的有序集合。4.2 一维数组的定义和引用 4.2.1 4.2.1 一维数组的定义一维数组的定义 C语言程序设计案例教程 大连理工大学出版社一维数组的定义方法一般为:一维数组的定义方法一般为:类型说明符类型说明符 数组名常量表达式数组名常量表达式 其 中 类 型 可 以 是 任 何 的其 中 类 型 可 以 是 任 何 的 C 语 言 数 据 类 型,例 如语 言 数 据 类 型,例 如char,int,long,float,double等,数组名与普通变量名一样,等,数组名与普通变量名一样,常量表达式是数组在内存中的单元数,在定义时必须是一

10、个常常量表达式是数组在内存中的单元数,在定义时必须是一个常数,不能是变量,数组的每个单元占的字节数就是对应类型占数,不能是变量,数组的每个单元占的字节数就是对应类型占的字节数,显然数组占的总字节数是:的字节数,显然数组占的总字节数是:常量表达式常量表达式*sizeof(类型类型)4.2 一维数组的定义和引用 4.2.1 一维数组的定义 1.1.一般定义一般定义 C语言程序设计案例教程 大连理工大学出版社例如:例如:char s20;/*定义能存储定义能存储20个字符的数组个字符的数组*/int n20;/*定义能存储定义能存储20个整数的数组个整数的数组*/float f20;/*定义能存储定

11、义能存储20个个float数的数组数的数组*/数组定义中常见的错误举例说明如下:数组定义中常见的错误举例说明如下:float a0;/*数组大小为数组大小为0没有意义没有意义*/int b(2);/*不能使用圆括号不能使用圆括号*/int k,ak;/*不能用变量说明数组大小不能用变量说明数组大小*/4.2 一维数组的定义和引用 4.2.1 一维数组的定义 C语言程序设计案例教程 大连理工大学出版社4.2 一维数组的定义和引用 4.2.1 一维数组的定义 数组在定义时还可以同时为各个单元设置初始值。数组在定义时还可以同时为各个单元设置初始值。定义时给所有元素赋值,例如:定义时给所有元素赋值,例

12、如:char s5=a,b,c,d,e;定义数组定义数组s5,并且设置,并且设置 s0=a,s1=b,s2=c,s3=d,s4=e2.2.定义及初始化定义及初始化 C语言程序设计案例教程 大连理工大学出版社4.2 一维数组的定义和引用 4.2.1 一维数组的定义 定义时给部分元素赋值,例如:定义时给部分元素赋值,例如:char s5=a,b;定义数组定义数组s5,并且设置,并且设置 s0=a,s1=b,s2=0,s3=0,s4=0,即后面没有赋值的元素,即后面没有赋值的元素全部设置为全部设置为0。定义时给所有的元素赋值,则可以不设置数组的大小,例如:定义时给所有的元素赋值,则可以不设置数组的大

13、小,例如:char s=a,b,c,d,e;与与char s5=a,b,c,d,e;是等价的。是等价的。C语言程序设计案例教程 大连理工大学出版社4.2 一维数组的定义和引用1.一维数组元素的引用方式一维数组元素的引用方式数组名数组名下标下标下标可以是整型常量或整型表达式。下标可以是整型常量或整型表达式。例如例如:a0=a5+a7-a2*32.一维数组元素引用的程序实例一维数组元素引用的程序实例【例例4.2】用数组来处理用数组来处理,求解求解Fibonacci数列。数列。/*源文件名:源文件名:Li4_2.c功能:求解功能:求解Fibonacci数列前数列前20项的值。项的值。*/4.2.2

14、4.2.2 一维数组的引用一维数组的引用 C语言程序设计案例教程 大连理工大学出版社4.2 一维数组的定义和引用 4.2.2 一维数组的引用#include void main()int i,f20=1,1;/*定义定义f数组,第数组,第1项和第项和第2项的值都为项的值都为1*/for(i=2;i20;i+)fi=fi-2+fi-1;/*给给f数组第数组第3项和第项和第20项赋值项赋值*/for(i=0;ii。对于任何一个对于任何一个ai,如果,如果aiaj,表明前面有一个元,表明前面有一个元素素ai比它后面的元素比它后面的元素aj大,大,ai应该在后面,应该在后面,aj应该在应该在前面,交换

15、前面,交换ai与与aj。对于任何一个对于任何一个ai,都循环一次,都循环一次j,j循环完成后循环完成后ai必不必不大于大于ai+1,an-1,重复,重复i循环,循环,i循环结束后数组从循环结束后数组从小到大排序。小到大排序。C语言程序设计案例教程 大连理工大学出版社4.2 一维数组的定义和引用 4.2.2 一维数组的引用 /*源文件:源文件:Lib4_3.c功能:用随机函数产生功能:用随机函数产生10个个0100之内的整数,按从小到大排序输出之内的整数,按从小到大排序输出 */#include#include void main()int a10,i,j,k;/*定义定义a数组,数组,i、j为

16、循环变量,为循环变量,k为临时变量为临时变量*/for(i=0;i10;i+)ai=rand()%100;/*给给a数组随机赋数组随机赋0100之内的整数之内的整数*/printf(排序之前的数据排序之前的数据);for(i=0;i10;i+)printf(%d,ai);/*输出输出a数组的值,未排序数组的值,未排序*/putchar(n);for(i=0;i9;i+)C语言程序设计案例教程 大连理工大学出版社4.2 一维数组的定义和引用 4.2.2 一维数组的引用程序运行后,屏幕显示:程序运行后,屏幕显示:for(j=i+1;jaj)k=ai;ai=aj;aj=k;/*数组排序数组排序*/f

17、or(i=0;i10;i+)printf(%d,ai);/*输出输出a数组的值,已排序数组的值,已排序*/putchar(n);34 45 26 15 76 84 98 29 67 1111 15 26 29 34 45 67 76 84 98 C语言程序设计案例教程 大连理工大学出版社任务任务2求每个小组学生成绩的总分及平均分求每个小组学生成绩的总分及平均分辅导员张老师在使用小王设计的程序时,发现他要对多辅导员张老师在使用小王设计的程序时,发现他要对多个小组学生成绩的总分及平均分进行计算,故张老师找来小个小组学生成绩的总分及平均分进行计算,故张老师找来小王同学,说明了需求,小王根据张老师的需

18、求,参考了相关王同学,说明了需求,小王根据张老师的需求,参考了相关的资料,完善了原来的程序,帮助张老师解决了该问题。的资料,完善了原来的程序,帮助张老师解决了该问题。C语言程序设计案例教程 大连理工大学出版社任务任务2求每个小组学生成绩的总分及平均分求每个小组学生成绩的总分及平均分/*功能:多个小组学生成绩的总分及平均分的计算功能:多个小组学生成绩的总分及平均分的计算*/#include#include#define MAX 1000#define MAX 1000#define M 100#define M 100void main()void main()intint i,ji,j;flo

19、at sumM,float sumM,aveaveM;M;intint count;count;intint group;group;intint aMMAX;aMMAX;printfprintf(“(“请输入小组的组数:请输入小组的组数:”););scanfscanf(“%(“%d”,&groupd”,&group););printfprintf(“(“请输入小组的人数:请输入小组的人数:”););scanfscanf(“%(“%d”,&countd”,&count););printfprintf(“(“请输入每小组的学生成绩:请输入每小组的学生成绩:”););C语言程序设计案例教程 大连理

20、工大学出版社任务任务2求每个小组学生成绩的总分及平均分求每个小组学生成绩的总分及平均分for(for(i i=0;i=0;igroup;igroup;i+)+)for(j=0;jfor(j=0;jcount;jcount;j+)+)scanfscanf(“%(“%d”,&ad”,&a i ij);j);for(for(i i=0;i=0;igroup;igroup;i+)+)sum sumi i=0.0;=0.0;for(j=0;j for(j=0;jcount;jcount;j+)+)sumi=sumi+aij;sumi=sumi+aij;C语言程序设计案例教程 大连理工大学出版社任务任务2

21、求每个小组学生成绩的总分及平均分求每个小组学生成绩的总分及平均分编译、连接、和运行程序。程序运行后,屏幕显示:请输入小组的组数:3请输入小组的人数:10请输入小组的学生成绩:60 70 80 90 100 90 80 70 60 10060 70 80 70 80 70 60 70 60 8060 70 70 80 100 80 70 70 60 90第1个小组学生成绩的总分是800.000000分 平均分是80.000000分第2个小组学生成绩的总分是700.000000分 平均分是70.000000分第3个小组学生成绩的总分是750.000000分 平均分是75.000000分aveave

22、 i i=sum=sumi i/count;/count;for(for(i i=0;i=0;igroup;igroup;i+)+)printfprintf(“(“第第%d%d个小组学生成绩的总分是个小组学生成绩的总分是%f%f分分tt平均分是平均分是%f%f分分n”,i+1,sumn”,i+1,sumi i,aveave i i););C语言程序设计案例教程 大连理工大学出版社任务任务2求每个小组学生成绩的总分及平均分求每个小组学生成绩的总分及平均分要完成上面的任务,小王必须要熟练掌握数组的要完成上面的任务,小王必须要熟练掌握数组的基本概念,熟练掌握二维数组的定义、赋值,熟练掌基本概念,熟练

23、掌握二维数组的定义、赋值,熟练掌握数组的输入和输出方法。握数组的输入和输出方法。C语言程序设计案例教程 大连理工大学出版社 4.3 二维数组的定义和引用二维数组实际上就是一维数组的数组,即它的每一个一维二维数组实际上就是一维数组的数组,即它的每一个一维元素都是一个一维数组,定义如下:元素都是一个一维数组,定义如下:类型说明符类型说明符 数组名数组名常量表达式常量表达式常量表达式常量表达式;例如:例如:int a35;4.3.1 4.3.1 二维数组的定义二维数组的定义 C语言程序设计案例教程 大连理工大学出版社 4.3 二维数组的定义和引用 4.3.1 二维数组的定义 a是一个二维数组,其中是

24、一个二维数组,其中a0,a1,a2每一个都是每一个都是一维数组,它们各有一维数组,它们各有5个元素,分别是:个元素,分别是:a00、a01、a02、a03、a04a10、a11、a12、a13、a14a20、a21、a22、a23、a24其中其中aij(i=0,1,2,j=0,1,2,3,4)是一个)是一个整数单元,这个数组共有整数单元,这个数组共有15个整数单元,它们在内存中的分布个整数单元,它们在内存中的分布是先按行排列再按列排列,是先按行排列再按列排列,a00是第是第1个元素,个元素,a10是第是第6个元素,个元素,a24是第是第15个元素,如下表所示。个元素,如下表所示。C语言程序设计

25、案例教程 大连理工大学出版社 4.3 二维数组的定义和引用 4.3.1 二维数组的定义a00a01 a02a03a04a10a11a12a13a14a20a21a22a23a24二维数组在定义时也可以对各个元素初始化,例如:二维数组在定义时也可以对各个元素初始化,例如:Int a35=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;初始化的数据按先排列行再排列列的顺序为每一个元素赋初始化的数据按先排列行再排列列的顺序为每一个元素赋值,赋值的结果如下表所示。值,赋值的结果如下表所示。C语言程序设计案例教程 大连理工大学出版社 4.3 二维数组的定义和引用 4.3.1 二维

26、数组的定义也可以用大括号来划分初始值,例如:也可以用大括号来划分初始值,例如:int a35=1,2,3,4,5,6,7,8;其中其中1,2,3,4,5对对a0数组赋初始值,数组赋初始值,6对对a1数组数组赋初始值,赋初始值,7,8对对a2数组赋初始值,赋值的结果如下表数组赋初始值,赋值的结果如下表所示。所示。a00=1a01=2a02=3a03=4a04=5a10=6a11=7a12=8a13=9a14=10a20=11a21=0a22=0a23=0a24=0 C语言程序设计案例教程 大连理工大学出版社 4.3 二维数组的定义和引用 4.3.1 二维数组的定义a00=1a01=2a02=3a

27、03=4a04=5a10=6a11=0a12=0a13=0a14=0a20=7a21=8a22=0a23=0a24=0在明确了括号的对数后,数组的第在明确了括号的对数后,数组的第1维可以不写,但第维可以不写,但第2维不能不写,例如:维不能不写,例如:int a 5=1,2,3,4,5,6,7,8;系统也会知道第系统也会知道第1维是维是3,等价于:,等价于:Int a35=1,2,3,4,5,6,7,8;C语言程序设计案例教程 大连理工大学出版社 4.3 二维数组的定义和引用 4.3.1 二维数组的定义二维数组的数值数组被广泛应用于数学的矩阵计算中,二二维数组的数值数组被广泛应用于数学的矩阵计算

28、中,二维数组的字符数组可用来存储一组字符串,例如:维数组的字符数组可用来存储一组字符串,例如:char s38=one,two,three;其中,其中,s0,s1,s2都是一个都是一个8个字符的一维字符个字符的一维字符数组,分别存储数组,分别存储one、two、three字符串,赋值的字符串,赋值的结果如下表所示。结果如下表所示。S00ne0S1two0S2three0 C语言程序设计案例教程 大连理工大学出版社4.3 二维数组的定义和引用1.二维数组元素的表示形式:二维数组元素的表示形式:数组名数组名下标下标下标下标例如:例如:a23下标可以是整型表达式,如下标可以是整型表达式,如a2-12

29、*2-1数组元素可以出现在表达式中,也可以被赋值。数组元素可以出现在表达式中,也可以被赋值。例如:例如:b12=a23/2在使用数组元素时,应该注意下标值应在已定义的数组大在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。小的范围内。4.3.2 4.3.2 二维数组的引用二维数组的引用 C语言程序设计案例教程 大连理工大学出版社4.3 二维数组的定义和引用 4.3.2 二维数组的引用2.二维数组元素引用的程序实例二维数组元素引用的程序实例 【例例4.4】将一个二维数组行和列元素互换,存到另一个二维数组中。例如将一个二维数组行和列元素互换,存到另一个二维数组中。例如 1 2 3 1

30、4a=4 5 6 b=2 5 3 6/*源文件名:源文件名:Li4_4.c功能:将一个二维数组行和列元素互换,存到另一个二维数组中。功能:将一个二维数组行和列元素互换,存到另一个二维数组中。*/C语言程序设计案例教程 大连理工大学出版社4.3 二维数组的定义和引用 4.3.2 二维数组的引用#include void main()int a23=1,2,3,4,5,6;/*定义定义a二维数组二维数组*/int b32,i,j;/*定义定义b二维数组二维数组*/printf(数组数组a:n);for(i=0;i=1;i+)for(j=0;j=2;j+)printf(%5d,aij);/*输出输出

31、a二维数组二维数组*/bji=aij;/*a数组行和列元素互换,存到数组行和列元素互换,存到b数组数组*/C语言程序设计案例教程 大连理工大学出版社4.3 二维数组的定义和引用 4.3.2 二维数组的引用printf(n);printf(数组数组b:n);for(i=0;i=2;i+)for(j=0;j=1;j+)printf(%5d,bij);/*输出输出b二维数组二维数组*/printf(n);C语言程序设计案例教程 大连理工大学出版社4.3 二维数组的定义和引用 4.3.2 二维数组的引用程序运行后,屏幕显示:程序运行后,屏幕显示:数组数组a:1 2 34 5 6数组数组b:1 42 5

32、3 6 C语言程序设计案例教程 大连理工大学出版社4.3 二维数组的定义和引用 4.3.2 二维数组的引用【例例4.5】定义一个整数数组定义一个整数数组a56,用随机函数值填写每个,用随机函数值填写每个单元,找出最大值的单元,输出其行号及列号。单元,找出最大值的单元,输出其行号及列号。/*源文件名:源文件名:Li4_5.c功能:找出二维数组中最大值的单元,输出其行号及列号。功能:找出二维数组中最大值的单元,输出其行号及列号。*/C语言程序设计案例教程 大连理工大学出版社4.3 二维数组的定义和引用 4.3.2 二维数组的引用#include#include void main()int a56

33、;/*定义定义a二维数组二维数组*/int i,j,k,l,max;/*定义定义i、j为循环变量,为循环变量,k、l为最大值所在的为最大值所在的 行和列,行和列,max为最大值为最大值*/for(i=0;i5;i+)for(j=0;j6;j+)aij=rand()%100;/*给给a二维数组赋值二维数组赋值*/max=a00;k=0;l=0;/*把把a00假设为最大值假设为最大值*/for(i=0;i5;i+)for(j=0;jmax)k=i;l=j;max=aij;/*保存最大值及其行号保存最大值及其行号k及列号及列号l*/printf(数组是数组是n)for(i=0;i5;i+);for(

34、j=0;j6;j+)printf(%4d,aij);/*输出输出a二维数组的值二维数组的值*/printf(n);printf(最大值是最大值是a%d%d=%dn,k,l,max);C语言程序设计案例教程 大连理工大学出版社4.3 二维数组的定义和引用 4.3.2 二维数组的引用程序运行后,屏幕显示:程序运行后,屏幕显示:数组是数组是 52 65 2 88 53 52 52 65 2 88 53 52 95 46 65 14 85 41 95 46 65 14 85 41 35 35 27 47 74 14 35 35 27 47 74 14 59 91 26 27 51 59 59 91 2

35、6 27 51 59 83 56 12 40 32 49 83 56 12 40 32 49最大值是最大值是a10=95a10=95 C语言程序设计案例教程 大连理工大学出版社任务任务3将小组学生按条件筛选将小组学生按条件筛选辅导员张老师在使用小王设计的程序时,发现他要对小组学生的英文姓名辅导员张老师在使用小王设计的程序时,发现他要对小组学生的英文姓名按照字典的顺序排列输出它们,故张老师找来小王同学,说明了需求,小王根按照字典的顺序排列输出它们,故张老师找来小王同学,说明了需求,小王根据张老师的需求,参考了相关的资料,完善了原来的程序,帮助张老师解决了据张老师的需求,参考了相关的资料,完善了原

36、来的程序,帮助张老师解决了该问题。该问题。/*功能:将小组学生的英文姓名按字典的顺序排列功能:将小组学生的英文姓名按字典的顺序排列*/#include#include#include#include void main()void main()C语言程序设计案例教程 大连理工大学出版社任务任务3将小组学生按条件筛选将小组学生按条件筛选 char names520,tmp20;/char names520,tmp20;/*定义字符数组定义字符数组wordswords和临时变和临时变量量tmptmp*/int i,j;int i,j;for(i=0;i5;i+)for(i=0;i5;i+)prin

37、tf(printf(输入第输入第%d%d个学生的英文姓名:个学生的英文姓名:,i+1);,i+1);gets(namesi);/gets(namesi);/*从键盘上输入学生的英文姓名从键盘上输入学生的英文姓名*/for(i=0;i4;i+)for(i=0;i4;i+)for(j=i+1;j5;j+)for(j=i+1;j0)if(strcmp(namesi,namesj)0)strcpy(tmp,namesi);strcpy(tmp,namesi);strcpy(namesi,namesj);strcpy(namesi,namesj);strcpy(namesi,tmp);/strcpy(n

38、amesi,tmp);/*交换交换namesinamesi与与namesjnamesj*/C语言程序设计案例教程 大连理工大学出版社任务任务3将小组学生按条件筛选将小组学生按条件筛选puts(puts(字典排序的学生英文姓名字典排序的学生英文姓名););for(i=0;i5;i+)puts(namesi);for(i=0;i5;i+)puts(namesi);设学生的英文姓名存储在设学生的英文姓名存储在names520names520的字符数组中,排序方法按比较法进行,的字符数组中,排序方法按比较法进行,这里比较的是学生的英文姓名字符串的大小。输入第这里比较的是学生的英文姓名字符串的大小。输入

39、第1 1个学生的英文姓名:个学生的英文姓名:lilylily输入第输入第2 2个学生的英文姓名:个学生的英文姓名:lucylucy输入第输入第3 3个学生的英文姓名:个学生的英文姓名:katekate输入第输入第4 4个学生的英文姓名:个学生的英文姓名:tomtom输入第输入第5 5个学生的英文姓名:个学生的英文姓名:tonytony字典排序的学生英文姓名字典排序的学生英文姓名lilylilylucy lucy katekatetomtomtonytony C语言程序设计案例教程 大连理工大学出版社任务任务3将小组学生按条件筛选将小组学生按条件筛选输入第输入第1 1个学生的英文姓名:个学生的英

40、文姓名:lilylily输入第输入第2 2个学生的英文姓名:个学生的英文姓名:lucylucy输入第输入第3 3个学生的英文姓名:个学生的英文姓名:katekate输入第输入第4 4个学生的英文姓名:个学生的英文姓名:tomtom输入第输入第5 5个学生的英文姓名:个学生的英文姓名:tonytony字典排序的学生英文姓名字典排序的学生英文姓名lilylilylucylucy katekatetomtomtonytony编译、连接、和运行程序。程序运行后,屏幕显示编译、连接、和运行程序。程序运行后,屏幕显示:C语言程序设计案例教程 大连理工大学出版社任务任务3将小组学生按条件筛选将小组学生按条件

41、筛选要完成上面的任务,小王必须要熟练掌握数组的基本要完成上面的任务,小王必须要熟练掌握数组的基本概念,熟练掌握字符数组的定义、赋值,熟练掌握数组的概念,熟练掌握字符数组的定义、赋值,熟练掌握数组的输入和输出方法输入和输出方法,字符串和字符数组的不同特点,掌握数字符串和字符数组的不同特点,掌握数组的排序、查询等基本操作方法。组的排序、查询等基本操作方法。C语言程序设计案例教程 大连理工大学出版社4.4 字符数组和字符串一维字符数组是一维字符数组是charchar型的数组,因为它的每一个元素是一型的数组,因为它的每一个元素是一个个charchar型变量,可以用来存放字符串,因此比较特别,例如:型变

42、量,可以用来存放字符串,因此比较特别,例如:char a5;char a5;定义了一个字符数组,它有定义了一个字符数组,它有a0,a1,a2,a0,a1,a2,a3,a4a3,a4共共5 5个元素,可以为它们赋值,例如:个元素,可以为它们赋值,例如:a0=H;a1=e;a2=l;a3=a0=H;a1=e;a2=l;a3=l;a4=o;l;a4=o;也可以在定义时就对各个元素赋值,也可以在定义时就对各个元素赋值,例如:例如:char a5=H,e,l,l,o;char a5=H,e,l,l,o;4.4.1 4.4.1 一维字符数组一维字符数组 C语言程序设计案例教程 大连理工大学出版社4.4 字

43、符数组和字符串字符串是一组字符,这些字符在内存中连续分布,在最后字符串是一组字符,这些字符在内存中连续分布,在最后一个字节单元中用一个字节单元中用00表示结束,这种结构与字符数组十分表示结束,这种结构与字符数组十分相似,实际上字符数组可以用来表示和存储字符串。例如:相似,实际上字符数组可以用来表示和存储字符串。例如:char b6=Hello;char b6=Hello;char b6=H,e,l,l,o,char b6=H,e,l,l,o,0;0;以上两种定义方法是完全等价的。以上两种定义方法是完全等价的。4.4.2 4.4.2 一维字符数组与字符串一维字符数组与字符串 C语言程序设计案例教

44、程 大连理工大学出版社4.4 字符数组和字符串1.1.字符数组元素的引用方式和一维数组元素的引用方式相字符数组元素的引用方式和一维数组元素的引用方式相同数组名同数组名 下标下标 下标可以是整型常量或整型表达式。下标可以是整型常量或整型表达式。例如例如:a0=a2:a0=a2*3+43+42.2.字符数组元素引用的程序实例字符数组元素引用的程序实例 【例例4.64.6】输出一个字符串。输出一个字符串。/*源文件名:源文件名:Li4_6.cLi4_6.c 功能:用字符数组输出一个字符串。功能:用字符数组输出一个字符串。*/4.4.3 4.4.3 字符数组的引用字符数组的引用 C语言程序设计案例教程

45、 大连理工大学出版社4.4 字符数组和字符串 4.4.3 字符数组的引用#include#include void main()void main()char char c10=I,c10=I,a,ma,m,a,a,b,ob,o,y;/y;/*定义定义c c字符数组并赋初值字符数组并赋初值*/intint i i;for(for(i i=0;i10;i+)=0;i10;i+)printfprintf(%(%c,cc,c i i);/);/*输出字符数组输出字符数组c c的值的值*/printfprintf(n);(n);I am a boy程序运行后,屏幕显示:程序运行后,屏幕显示:C语言程序

46、设计案例教程 大连理工大学出版社gets是用来输入字符串的函数,使用方法是:是用来输入字符串的函数,使用方法是:gets(字符数组字符数组);gets()函数从输入流中读取一行字符,一直读到()函数从输入流中读取一行字符,一直读到n,但不包括但不包括n字符,最后在末尾自动加上字符,最后在末尾自动加上 0 的结束的结束标志。如果字符串的长度超过字符数组的容量,标志。如果字符串的长度超过字符数组的容量,C程序不会程序不会自动停止读取字符,程序设计人员应设法保证读取的字符数自动停止读取字符,程序设计人员应设法保证读取的字符数不要超过字符数组的容量,不然数组越界会带来预想不到的不要超过字符数组的容量,

47、不然数组越界会带来预想不到的错误。错误。4.4 字符数组和字符串4.4.4 4.4.4 字符串输入输出函数字符串输入输出函数 C语言程序设计案例教程 大连理工大学出版社puts函数是用来输出字符串,使用方法是:函数是用来输出字符串,使用方法是:puts(字符数组字符数组);puts()输出一个字符串,之后输出()输出一个字符串,之后输出 n 换行。换行。4.4 字符数组和字符串 4.4.4 字符串输入输出函数【例例4.7】用用gets()函数读取字符串并用()函数读取字符串并用puts()函数输出字符串。()函数输出字符串。/*源文件名:源文件名:Li4_7.c功能:用功能:用gets()函数

48、读取字符串并用()函数读取字符串并用puts()函数输出()函数输出*/C语言程序设计案例教程 大连理工大学出版社4.4 字符数组和字符串 4.4.4 字符串输入输出函数#include void main()char s18;/*定义定义s字符数组的初值字符数组的初值*/printf(输入字符串输入字符串);gets(s);/*读取字符串读取字符串*/puts(s);/*输出字符串输出字符串*/printf(读取的字符串是读取的字符串是%sn,s);/*输出输出s字符数组的值字符数组的值*/输入字符串输入字符串How are you?How are you?读取的字符串是读取的字符串是How

49、 are you?程序运行后,屏幕显示:程序运行后,屏幕显示:C语言程序设计案例教程 大连理工大学出版社4.4 字符数组和字符串字符串在程序中大量用到,关于字符串有一些常用的函字符串在程序中大量用到,关于字符串有一些常用的函数,这些函数在数,这些函数在string.hstring.h头文件中说明,在使用时程序的开头文件中说明,在使用时程序的开始部分要包含下面语句:始部分要包含下面语句:#include#include 4.4.5 4.4.5 常用字符串函数常用字符串函数 C语言程序设计案例教程 大连理工大学出版社4.4 字符数组和字符串 4.4.5 常用字符串函数strlenstrlen意思是

50、意思是string lengthstring length。strlenstrlen函数用来测试字符函数用来测试字符串的长度,即从第一个字符开始一直到串的长度,即从第一个字符开始一直到00之前的一个字之前的一个字符的总字符数,方法是:符的总字符数,方法是:strlenstrlen(字符数组或字符串字符数组或字符串););该函数返回一个整数表示字符串的长度,例如:该函数返回一个整数表示字符串的长度,例如:strlenstrlen(How);(How);值为值为3 3strlenstrlen(How about?);(How about?);值为值为1010strlenstrlen(C(C语言语言

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文((C语言程序设计案例课件)项目四学生成绩的分组汇总.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|