其它课程程序设计与问题求解.pptx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 其它 课程 程序设计 问题 求解
- 资源描述:
-
程序设计与问题求解I1本章主要内容本章主要内容一维数组定义与初始化一维数组定义与初始化二维数组定义与初始化二维数组定义与初始化字符型数组与字符串字符型数组与字符串数组与函数数组与函数结构体类型结构体类型枚举类型枚举类型程序设计与问题求解I2【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由由键盘输入(作为依据需要保存)键盘输入(作为依据需要保存),要求输出参赛选手的最终得分。,要求输出参赛选手的最终得分。【关键】【关键】N名评委的打分用什么保存?名评委的打分用什么保存?【想想法法】N个个变变量量存存放放N名名评评委委的的打打分分,找找出出最最高高分分和和最最低低分分,统统计计剩剩下下评分的平均值。评分的平均值。【算法算法】输入:输入:N个评分(小数)个评分(小数)输出:除输出:除最高分和最低分外的平均值最高分和最低分外的平均值歌手大赛歌手大赛1.在在N个个变变量量中中扫扫描描一一遍遍,找找到到最最小小值值和和最最大大值值,并计算评分的总和并计算评分的总和sum;2.平均分平均分(sum-最小值最小值-最大值最大值)/(N-2);3.返回平均分;返回平均分;程序设计与问题求解I3数据类型数据类型u基本类型:整型、实型、字符型、布尔型基本类型:整型、实型、字符型、布尔型u构造类型:构造类型:l由基本类型数据按一定规则组成的,包括数组、枚由基本类型数据按一定规则组成的,包括数组、枚举、结构体、共用体举、结构体、共用体数组数组u具有具有相同数据类型相同数据类型的的变量集合,变量集合,这些变量名这些变量名称相同,下标不同,称为称相同,下标不同,称为数组元素数组元素u有一个下标有一个下标一维数组一维数组u有两个下标有两个下标二维数组二维数组u有多个下标有多个下标多维数组多维数组数组数组程序设计与问题求解I4一维数组的定义格式一维数组的定义格式u类型说明符类型说明符 数组名数组名常量常量表达式表达式说明说明u数组名命名规则和变量名相同数组名命名规则和变量名相同u数组名后用方括弧括起来的常量表达式表示数组名后用方括弧括起来的常量表达式表示数数组元素的个数组元素的个数,必须是,必须是整型常量整型常量一维数组一维数组程序设计与问题求解I5int a10;/声明数组声明数组a,数组元素的类型为整型,共有,数组元素的类型为整型,共有10个数组元素个数组元素char ch8;/声明数组声明数组ch,数组元素的类型为字符型,共有,数组元素的类型为字符型,共有8个数组元素个数组元素double b5;/声明数组声明数组b,数组元素的类型为双精度型,共有,数组元素的类型为双精度型,共有5个数组元素个数组元素数组长度必须是一个固定的值,声明数组时数组长度必须是一个固定的值,声明数组时数组长度不能是变量数组长度不能是变量 int n=10;int an;const int N=10;int aN;一维数组一维数组一维数组的定义一维数组的定义程序设计与问题求解I6一维数组的存储:连续的存储单元。一维数组的存储:连续的存储单元。数组三要素:数组三要素:1.数组名:数组的起始地址数组名:数组的起始地址2.基类型:数组元素的数据类型基类型:数组元素的数据类型3.数组长度:数组元素的个数数组长度:数组元素的个数 数组名数组名 数组长度数组长度数组元素的存储单元数数组元素的存储单元数一维数组一维数组一维数组的定义一维数组的定义程序设计与问题求解I7数组三要素:数组三要素:1.数组的起始地址是数组的起始地址是a2.数组元素的数据类型是整型数组元素的数据类型是整型3.数组元素的个数是数组元素的个数是10 数组名数组名a 元素个数元素个数10每个元素占每个元素占4个字节个字节一维数组一维数组一维数组的定义一维数组的定义int a10;/声明一个声明一个int型数组型数组程序设计与问题求解I8例:成长的记录:输入、输出从小到大的身高。例:成长的记录:输入、输出从小到大的身高。算法分析:算法分析:1.输入从小到大的身高,保存在数组输入从小到大的身高,保存在数组heightN中。中。2.输出从小到大的身高。输出从小到大的身高。一维数组一维数组const int N=18;double heightN;cinheight;coutheight;C/C+语言中,数组整体不能参加数据处理,参加语言中,数组整体不能参加数据处理,参加处理的只能是数组中的元素变量。处理的只能是数组中的元素变量。程序设计与问题求解I9【语义语义】引用该下标对应的数组元素。引用该下标对应的数组元素。数组下标的取值范围是数组下标的取值范围是 0,0,数组长度数组长度1 1 一维数组一维数组一维数组元素的引用一维数组元素的引用 引用数组元素使用数组名和该元素在数组引用数组元素使用数组名和该元素在数组中的下标。中的下标。数组变量名数组变量名整型常量表达式整型常量表达式 数组下标数组下标下标不要超出范围,否则会出现意想不到的错误。下标不要超出范围,否则会出现意想不到的错误。程序设计与问题求解I10int a10;/声明一个声明一个int型数组型数组下标:下标:0 1 2 3 4 5 6 7 8 9a0 a1 a2 a3 a4 a5 a6 a7 a8 a9地址:地址:&a0&a1&a2&a3&a4&a5&a6&a7&a8&a9元素值:元素值:数组元素具有变量的基本属性数组元素具有变量的基本属性变量名:变量名:aiai地址:地址:&ai&ai变量值:变量值:aiai类型:类型:intint一维数组一维数组一维数组元素的引用一维数组元素的引用程序设计与问题求解I11int a10=0,1,2,3,4,5,6,7,8,9;int a10=0,1,2,3,4;int a =0,1,2,3,4;一维数组的初始化一维数组的初始化定义方法不一样,都完成什么功能?定义方法不一样,都完成什么功能?程序设计与问题求解I12定义数组时顺序对各元素赋以初值定义数组时顺序对各元素赋以初值u例例:int array10=0,1,2,3,4,5,6,7,8,9;全部全部元素赋初值时,可以不指定数组长度元素赋初值时,可以不指定数组长度u例例:int array5=0,1,2,3,4;u也可以写成也可以写成 int array=0,1,2,3,4;可以只给一可以只给一部分部分元素赋值。元素赋值。u例例:int array10=0,1,2,3,4;前面前面5个元素赋初值,后个元素赋初值,后5个元素值为个元素值为0。u当初值个数少于数组元素个数时,多的元素被赋予当初值个数少于数组元素个数时,多的元素被赋予0值。值。一维数组的初始化一维数组的初始化程序设计与问题求解I13例:成长的记录:输入、输出从小到大的身高。例:成长的记录:输入、输出从小到大的身高。算法分析:算法分析:1.输入从小到大的身高,保存在数组输入从小到大的身高,保存在数组heightN中。中。2.输出从小到大的身高。输出从小到大的身高。一维数组一维数组程序设计与问题求解I14/成长的记录:输入输出从小到大的身高。成长的记录:输入输出从小到大的身高。#include void main()const int N=20;int i;double heightN;for(i=0;iN;i+)coutheighti;for(i=0;iN;i=i+1)cout第第i+1次身高:次身高:heightiendl;一维数组一维数组数组元素数组元素单个使用单个使用数组下标数组下标不能超出不能超出边界边界程序设计与问题求解I15例:输入例:输入10个整数,找出其中的最大数。个整数,找出其中的最大数。算法分析:算法分析:1.输入输入10个整数保存在数组中个整数保存在数组中a0-a92.假设数组中第假设数组中第1个元素最大个元素最大令令max=a03.将将ai(1=i max,max=ai,i=i+13.2 否则,否则,i=i+14.输出最大元素输出最大元素max。一维数组一维数组程序设计与问题求解I16/输入输入10个整数,找出其中的最大数。个整数,找出其中的最大数。#include void main()const int N=10;int i,arrayN;coutPlease input an array with N elements:endl;for(i=0;iarrayi;int max=array0;for(i=1;imax)max=arrayi;coutmax=maxendl;一维数组一维数组程序设计与问题求解I17【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由由键盘输入,要求输出参赛选手的最终得分。键盘输入,要求输出参赛选手的最终得分。【关键】【关键】N名评委的打分用什么保存?名评委的打分用什么保存?【想想法法】N个个变变量量存存放放N名名评评委委的的打打分分,找找出出最最高高分分和和最最低低分分,统统计计剩剩下下评分的平均值。评分的平均值。【算法算法】输入:输入:N个评分(小数)个评分(小数)输出:除输出:除最高分和最低分外的平均值最高分和最低分外的平均值歌手大赛歌手大赛1.在在N个个变变量量中中扫扫描描一一遍遍,找找到到最最小小值值和和最最大大值值,并计算评分的总和并计算评分的总和sum;2.平均分平均分(sum-最小值最小值-最大值最大值)/(N-2);3.返回平均分;返回平均分;程序设计与问题求解I18/歌手大赛,歌手大赛,评委的评分由键盘输入,评委的评分由键盘输入,去掉最高分和最低分,输出参赛选手的最终得分。去掉最高分和最低分,输出参赛选手的最终得分。#include void main()const int N=7;/评委数目评委数目int i;double scoreN,sum,max,min,average;cout请输入各评委打分请输入各评委打分:endl;for(i=0;iscorei;max=score0;min=score0;sum=score0;for(i=1;imax)max=scorei;if(scoreimin)min=scorei;sum=sum+scorei;average=(sum-max-min)/(N-2);cout去掉最高分去掉最高分:max,去掉最低分,去掉最低分:minendl;cout参赛选手的最终得分:参赛选手的最终得分:averageendl;歌手大赛歌手大赛程序设计与问题求解I19【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由由键键盘盘输输入入,要要求求输输出出参参赛赛选选手手的的最最终终得得分分,并并且且最最后后给给出出所所有有参参赛赛选选手手得得分排名分排名。【关键】【关键】所有参赛选手的得分如何保存?如何排序?所有参赛选手的得分如何保存?如何排序?【想想法法】M个个参参赛赛选选手手的的得得分分保保存存在在数数组组averageM中中,然然后后对对这这M个个数数据进行排序。据进行排序。歌手大赛歌手大赛程序设计与问题求解I20排序算法排序算法算法分析(升序):算法分析(升序):1.1.两两比较相邻元素两两比较相邻元素AiAi和和Ai-1 Ai-1(i=N-1,N-2,2,1,0),(i=N-1,N-2,2,1,0),如果如果AiAi-1,AiAi-1,则交换它们的位置则交换它们的位置 AiAiAi-1;Ai-1;经过经过N-1N-1次比较次比较,将将最小值交换到最小值交换到A0A0的位置的位置;2.2.对剩下的对剩下的N-1N-1个元素个元素,再两两进行比再两两进行比较较,按同样规则交换它们的位置按同样规则交换它们的位置,经经过过N-2N-2次比较次比较,将次最小值交换到将次最小值交换到A1A1的位置的位置;3.3.如法炮制如法炮制,经过经过N-1N-1趟的趟的“冒泡处理冒泡处理”,每趟进行每趟进行N-iN-i次的比较次的比较,全部数列全部数列有序。有序。冒泡排序冒泡排序程序设计与问题求解I21/冒泡排序,输入冒泡排序,输入n个整数,输出升序排序结果个整数,输出升序排序结果#include void main()const int N=10;/N个整数升序排序个整数升序排序int i,j,temp;int listN;cout 请输入待排序的整数数列:请输入待排序的整数数列:;for(i=0;ilisti;for(i=0;ii;j-)/每次都从最后一个元素开始比较每次都从最后一个元素开始比较 if(listj-1listj)/如果前后大小顺序不符合要求,则交换位置如果前后大小顺序不符合要求,则交换位置 temp=listj-1;listj-1=listj;listj=temp;/输出排序后的数组输出排序后的数组cout 排序后的整数数列为:排序后的整数数列为:;for(i=0;iN;i+)cout listi ;coutendl;程序设计与问题求解I22【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由由键键盘盘输输入入,要要求求输输出出参参赛赛选选手手的的最最终终得得分分,并并且且最最后后给给出出所所有有参参赛赛选选手手得得分排名分排名。【关键】【关键】所有参赛选手的得分如何保存?如何排序?所有参赛选手的得分如何保存?如何排序?【想想法法】M个个参参赛赛选选手手的的得得分分保保存存在在数数组组averageM中中,然然后后对对这这M个个数数据进行排序。据进行排序。【算法】输入:【算法】输入:N个评分个评分 输出:输出:M个选手的最终得分和排名个选手的最终得分和排名歌手大赛歌手大赛1.在在N个个变变量量中中扫扫描描一一遍遍,找找到到最最小小值值和和最最大大值值,并计算评分的总和并计算评分的总和sum;2.平均分平均分(sum-最小值最小值-最大值最大值)/(N-2);3.返回平均分;返回平均分;1.i循环循环M次次 1.1在在N个个变变量量中中扫扫描描一一遍遍,找找到到最最小小值值和和最最大大值值,并计算评分的总和并计算评分的总和sum;1.2平均分平均分i(sum-最小值最小值-最大值最大值)/(N-2);2.对对平均分平均分进行排序进行排序;3.输出平均分序列。输出平均分序列。程序设计与问题求解I23/歌手大赛,输入每位评委打分,去掉最高分、最低分,得每位选手的最终得分,最后按歌手大赛,输入每位评委打分,去掉最高分、最低分,得每位选手的最终得分,最后按得分排名得分排名#include void main()const int N=7;/评委数目评委数目int i;double scoreN,sum,max,min,average;cout请输入各评委打分请输入各评委打分:endl;for(i=0;iscorei;max=score0;min=score0;sum=score0;for(i=1;imax)max=scorei;if(scoreimin)min=scorei;sum=sum+scorei;average=(sum-max-min)/(N-2);cout去掉最高分去掉最高分:max,去掉最低分,去掉最低分:minendl;cout参赛选手的最终得分:参赛选手的最终得分:averageendl;歌手大赛歌手大赛#include void main()const int M=20;/参赛歌手数目参赛歌手数目 const int N=7;/评委数目评委数目 int i,j;double scoreN,sum,max,min,averageM,temp;for(i=0;iM;i+)/统计各选手得分统计各选手得分 cout请输入各评委打分请输入各评委打分:endl;for(j=0;jscorej;max=score0;min=score0;sum=score0;for(j=1;jmax)max=scorej;if(scorejmin)min=scorej;sum=sum+scorej;averagei=(sum-max-min)/(N-2);cout去掉最高分去掉最高分:max,去掉最低分,去掉最低分:minendl;cout参赛选手的最终得分:参赛选手的最终得分:averageiendl;程序设计与问题求解I24for(i=0;ii;j-)if(averagej-1averagej)temp=averagej-1;averagej-1=averagej;averagej=temp;for(i=0;iM;i=i+1)/输出各选手最后得分排名输出各选手最后得分排名 cout“各参赛选手的最终得分:各参赛选手的最终得分:averageiendl;歌手大赛歌手大赛程序设计与问题求解I25【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由由键键盘盘输输入入,要要求求输输出出参参赛赛选选手手的的最最终终得得分分,并并且且最最后后给给出出所所有有参参赛赛选选手手得得分分排排名名和所有评委打分和所有评委打分。【关键】【关键】所有参赛选手的所有评委打分如何保存?所有参赛选手的所有评委打分如何保存?【想想法法】1个个参参赛赛选选手手有有N个个打打分分,M个个参参赛赛选选手手有有MxN个个打打分,用分,用MxN个变量来保存。个变量来保存。在在C/C+中如何定义、使用这些变量?中如何定义、使用这些变量?歌手大赛歌手大赛程序设计与问题求解I26定义格式:定义格式:u ;例如,三个学生四门课程成绩数据如下例如,三个学生四门课程成绩数据如下:u 85 87 93 88u 86 90 95 89u 78 91 82 95利用二维数组存放这些数据更能表现数据之间利用二维数组存放这些数据更能表现数据之间相互联系的特征。每一行数据表示该学生的各相互联系的特征。每一行数据表示该学生的各门课程的成绩,而每一列数据表示该门课程各门课程的成绩,而每一列数据表示该门课程各学生的成绩。该数组定义为:学生的成绩。该数组定义为:uint s34;注意:不能写成注意:不能写成int s3,4二维数组二维数组程序设计与问题求解I27二维数组存储结构二维数组存储结构逻辑结构:逻辑结构:u 二维数组恰似一张表格(或矩阵)。数组元素中的第二维数组恰似一张表格(或矩阵)。数组元素中的第一个下标值表示该元素在表格中的行号,第二个下标一个下标值表示该元素在表格中的行号,第二个下标为列号。为列号。s34具有如下逻辑结构:具有如下逻辑结构:s00 s01 s02 s03 s10 s11 s12 s13 s20 s21 s22 s23存贮结构(物理结构):存贮结构(物理结构):u二维数组在内存中按一维数组存放、占据一片连续的二维数组在内存中按一维数组存放、占据一片连续的存贮单元;是存贮单元;是“按行顺序按行顺序”在内存中分配存贮单元。在内存中分配存贮单元。程序设计与问题求解I28二维数组存储结构二维数组存储结构二维数组(三行四列)二维数组(三行四列)s00 s01 s02 s03s10 s11 s12 s13s20 s21 s22 s23二维数组内存分配二维数组内存分配s00 s01 s02 s03 s10 s11 s12 s13s21s20s22s23第一行第二行第三行程序设计与问题求解I29二维数组初始化二维数组初始化按照二维数组元素的物理存储次序给按照二维数组元素的物理存储次序给所有所有或或部分部分数组元素数组元素提供数据值提供数据值int score34=85,87,93,88,86,90,95,89,78,91,82,95;以以行结构方式行结构方式提供各数据值提供各数据值 int score34=85,87,93,88,86,90,95,89,78,91,82,95;C+语言允许在为二维数组初始化时省略行下标值,但语言允许在为二维数组初始化时省略行下标值,但列列下标值不能省略下标值不能省略。int score 4=85,87,93,88,86,90,95,89,78,91,82,95;float matrix23=1.0,3.0;仅为数组仅为数组matrix的前个元素提供初值,的前个元素提供初值,后面的元素赋初后面的元素赋初值值0。程序设计与问题求解I30例:二维数组例:二维数组rMN的输入的输入/输出。输出。分析:二维数组不能整体输入输出,只能单个元分析:二维数组不能整体输入输出,只能单个元素输入输出。总共输入素输入输出。总共输入M行,每行输入行,每行输入N个,用双个,用双重循环实现。重循环实现。算法:算法:for(i=0;iM;i+)/二维数组行下标:二维数组行下标:0.M-1 for(j=0;jrij;for(i=0;iM;i+)for(j=0;jN;j+)coutrij;二维数组二维数组数组下标不能数组下标不能超出边界超出边界程序设计与问题求解I31【问问题题】某某学学校校组组织织歌歌手手大大赛赛,聘聘请请了了N名名评评委委为为参参赛赛选选手手打打分分,评评分分原原则则是是去去掉掉一一个个最最高高分分和和一一个个最最低低分分,取取剩剩下下评评分分的的平平均均值值作作为为该该选选手手的的最最后后得得分分。评评委委给给出出的的评评分分范范围围为为0.10,可可以以是是小小数数。假假设设评评委委的的评评分分由由键键盘盘输输入入,要要求求输输出出参参赛赛选选手手的的最最终终得得分分,并并且且最最后后给给出出所所有有参参赛赛选选手手得得分分排排名名和所有评委打分和所有评委打分。【想想法法】所所有有参参赛赛选选手手的的所所有有评评委委打打分分保保存存在在二二维维数数组组scoreMN中中歌手大赛歌手大赛程序设计与问题求解I32/歌手大赛歌手大赛#include void main()const int M=20;/参赛选手数目参赛选手数目 const int N=7;/评委数目评委数目 int i,j;double scoreN,sum,max,min,averageM,temp;for(i=0;iM;i+)cout请输入各评委打分请输入各评委打分:endl;for(j=0;jscorej;max=score0;min=score0;sum=score0;for(j=1;jmax)max=scorej;if(scorejmin)min=scorej;sum=sum+scorej;averagei=(sum-max-min)/(N-2);cout去掉最高分去掉最高分:max,去掉最低分,去掉最低分:minendl;cout参赛选手的最终得分:参赛选手的最终得分:averageiendl;#include void main()const int M=20;/参赛选手数目参赛选手数目 const int N=7;/评委数目评委数目 int i,j;double scoreMN,sum,max,min,averageM,temp;for(i=0;iM;i+)cout请输入各评委打分请输入各评委打分:endl;for(j=0;jscoreij;max=scorei0;min=scorei0;sum=scorei0;for(j=1;jmax)max=scoreij;if(scoreijmin)min=scoreij;sum=sum+scoreij;averagei=(sum-max-min)/(N-2);cout去掉最高分去掉最高分:max,去掉最低分,去掉最低分:minendl;cout参赛数选手的最终得分:参赛数选手的最终得分:averageiendl;程序设计与问题求解I33for(i=0;ii;j-)if(averagej-1averagej)temp=averagej-1;averagej-1=averagej;averagej=temp;for(i=0;iM;i+)cout“各参赛选手的最终得分:各参赛选手的最终得分:averagei 打分:打分:;for(j=0;jN;j+)coutscoreijt;coutname;/如果输入如果输入Liu Xiang,只接收,只接收Liuu运算符遇到空白字符就会停止读入数据运算符遇到空白字符就会停止读入数据字符串的输出字符串的输出coutname;/输出输出Liu程序设计与问题求解I37字符串字符串例:将小写字母转换为大写字母例:将小写字母转换为大写字母#include void main()char str=This is a sample;coutThe original string is:str=a&stri=z)stri=stri-a+A;i=i+1;/走到下一个字符走到下一个字符coutAfter transform:strendl;The original string is:This is a sampleAfter transform:THIS IS A SAMPLE程序设计与问题求解I38字符串处理库函数字符串处理库函数C/C+提供了许多字符串处理函数。使用这些函数,可以提供了许多字符串处理函数。使用这些函数,可以提高字符处理的效率。提高字符处理的效率。字符串处理函数的说明都包含在字符串处理函数的说明都包含在“cstring”头文件中,所头文件中,所以使用时需要添加以使用时需要添加#include ustpcpy():字符串拷贝字符串拷贝;ustrcat():字符串连接字符串连接;ustrchr():在字符串中查找字符在字符串中查找字符;ustrcmp():字符串比较字符串比较;ustrlen():求字符串长度求字符串长度;ustrlwr():将字符串中的大写字母转换为小写字母将字符串中的大写字母转换为小写字母;ustrrev():反转字符串反转字符串;ustrstr():在字符串中查找另一个字符串在字符串中查找另一个字符串;ustrupr():将字符串中的小写字母转换为大写字母将字符串中的小写字母转换为大写字母;u 程序设计与问题求解I39字符串处理库函数字符串处理库函数求字符串的长度求字符串的长度:int strlen(char s);例如例如:len=strlen(This is a sample.);执行后,变量执行后,变量len会被赋值会被赋值17。字符串连接函数字符串连接函数 strcat(char destin,char source);复制字符串复制字符串strcpy(char destin,char source);例如例如:char weekday11;strcpy(weekday,“MONDAY”);/注意数组定义长度必须能够放下字符串注意数组定义长度必须能够放下字符串字符串字符串比较比较int strcmp(char string1,char string2);程序设计与问题求解I40字符串处理库函数字符串处理库函数例例:字符串连接。字符串连接。#include#include using namespace std;void main()char destination30=abcdefg;char source=ABCDEFG;strcat(destination,source);/直接调用字符串连接函数直接调用字符串连接函数cout连接后的字符串为:连接后的字符串为:destinationendl;连接后的字符串为:连接后的字符串为:abcdefgABCDEFG程序设计与问题求解I41函数与数组函数与数组例:编写一个计算字符串长度的函数例:编写一个计算字符串长度的函数mystrlen(),并用主函数验证。并用主函数验证。分析分析:如何保存字符串?用字符数组来保存。这样给函如何保存字符串?用字符数组来保存。这样给函数传递的参数就是字符数组。数组作为参数如何数传递的参数就是字符数组。数组作为参数如何传递?传递?程序设计与问题求解I42数组元素数组元素作为函数参数作为函数参数与普通变量相同与普通变量相同u传值调用传值调用单向传递单向传递数组名数组名作为函数参数作为函数参数u引用调用引用调用双向传递双向传递函数与数组函数与数组程序设计与问题求解I43函数与数组函数与数组例:输入一组整数,判断哪一个是素数。例:输入一组整数,判断哪一个是素数。分析:分析:u输入的整数保存在哪里?保存在一个整型数组输入的整数保存在哪里?保存在一个整型数组中。中。u判断素数最好独立编写为函数,参数为数组中判断素数最好独立编写为函数,参数为数组中的元素(的元素(单个元素变量单个元素变量),返回值为布尔型,),返回值为布尔型,1为素数,为素数,0为非素数。为非素数。程序设计与问题求解I44函数与数组函数与数组/输入一组整数,判断哪一个是素数。输入一组整数,判断哪一个是素数。#include#includebool isprime(int a);/判断判断a是否为素数,如果是则返回是否为素数,如果是则返回1,否则返回,否则返回0void main()const int N=10;int i;int arrayN;for(i=0;iN;i+)coutarrayi;if(isprime(arrayi)=1)coutarrayi“是素数是素数”endl;else coutarrayi“不是素数不是素数”endl;程序设计与问题求解I45函数与数组函数与数组/判断判断a是否为素数的函数,如果是则返回是否为素数的函数,如果是则返回1,否则返回,否则返回0bool isprime(int a)int i;for(i=2;i=sqrt(a);i+)if(a%i=0)return 0;return 1;程序设计与问题求解I46函数与数组函数与数组例:编写一个计算字符串长度的函数例:编写一个计算字符串长度的函数Mystrlen(),并用主函数验证。并用主函数验证。分析:分析:u如何保存字符串?用字符数组来保存。这样给函数传递如何保存字符串?用字符数组来保存。这样给函数传递的参数就是字符数组(的参数就是字符数组(数组整体数组整体)。)。数组名数组名作为参数传作为参数传递。递。函数算法:函数算法:1.设一个计数器变量设一个计数器变量len=0。2.从数组元素从数组元素strlen开始依次扫描每个元素开始依次扫描每个元素2.1若当前的元素值若当前的元素值strlen非空(非空(0),则),则len+1,继续执行,继续执行2.1;否则,退出循环。;否则,退出循环。3.返回结果返回结果len程序设计与问题求解I47例:编写一个计算字符串长度的函数例:编写一个计算字符串长度的函数Mystrlen(),并用主,并用主函数验证。函数验证。#include/计算字符串长度函数,输入字符串,返回字符串长度计算字符串长度函数,输入字符串,返回字符串长度int MyStrlen(char string)/数组名作为参数,引用调用数组名作为参数,引用调用 int len=0;while(stringlen!=0)len=len+1;return len;void main()/验证字符串长度函数验证字符串长度函数const int N=10;/字符串最大的可能长度字符串最大的可能长度char stringN;/保存字符串保存字符串coutPlease input a string(within 9 characters):string;coutThe length of the string is:MyStrlen(string)endl;Please input a string(within 9 characters):chinaThe length of the string is:5函数与数组函数与数组程序设计与问题求解I48函数与数组函数与数组例:编写字符串比较的函数例:编写字符串比较的函数MyStrcmp(s1,s2),如果如果s1s2返回正数。在主函数中调用验证。返回正数。在主函数中调用验证。分析:分析:u两个字符串比较的函数,参数应为两个字符串。返两个字符串比较的函数,参数应为两个字符串。返回值为整型数,负数,回值为整型数,负数,0,正数。,正数。u字符串如何比较?按照字符串如何比较?按照ASCII码一一对应比较。相等:码一一对应比较。相等:字符串长度相等,每一个对应字符相等。用一个循环字符串长度相等,每一个对应字符相等。用一个循环比较两个字符串的对应字符。比较两个字符串的对应字符。程序设计与问题求解I49函数与数组函数与数组例:编写字符串比较的函数例:编写字符串比较的函数MyStrcmp(s1,s2),如,如果果s1s2返回正数。在主函数中调用验证。返回正数。在主函数中调用验证。#includeint MyStrcmp(char s1,char s2)/数组名作为参数,引用调用数组名作为参数,引用调用/比较字符串比较字符串s1,s2。如果。如果s1s2返回正数返回正数int i=0;while(s1i=s2i&s1i!=0&s2i!=0)/有一个为有一个为0表示已经结尾表示已经结尾 i+;/指向下一个字符指向下一个字符return s1i-s2i;程序设计与问题求解I50函数与数组函数与数组例:编写用于字符串比较的函数例:编写用于字符串比较的函数MyStrcmp(s1,s2),如果,如果s1s2返回正数。返回正数。在主函数中调用验证。在主函数中调用验证。void main()/测试字符串比较函数的主程序测试字符串比较函数的主程序const int N=20;char string1N,string2N;coutPlease input a string(within 9 characters):;coutstring1;coutPlease input another string(within 9 characters):;coutstring2;coutCompare the two string is:;coutMyStrcmp(string1,string2)endl;程序设计与问题求解I51函数与数组函数与数组例:编写用于字符串连接的函数例:编写用于字符串连接的函数Strcat(s1,s2),将字符串,将字符串s2连接在字符串连接在字符串s1的后面。在主函数中调用验证。的后面。在主函数中调用验证。#include using namespace std;/连接两个字符串的函数,将连接两个字符串的函数,将sour中字符串连接到中字符串连接到dest中的字符串后面中的字符串后面void Strcat(char dest,char sour)展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




其它课程程序设计与问题求解.pptx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4827465.html