1、主讲教师:崔莉莉主讲教师:崔莉莉 基本类型基本类型数数据据类类型型 构造类型构造类型整型整型 int字符型字符型 char实型(浮点型)实型(浮点型)数组类型数组类型结构体类型结构体类型单精度单精度 float双精度双精度 double 指针类型指针类型 空类型空类型 void构造类型构造类型数据是由基本类型数据按一定规则组成,它们的具数据是由基本类型数据按一定规则组成,它们的具体组成要由编程者按实际需要决定。体组成要由编程者按实际需要决定。学习目标:学习目标:q 理解数组的基本概念理解数组的基本概念 q 熟练掌握一维数组的基本使用熟练掌握一维数组的基本使用 q 掌握二维数组的基本使用掌握二维
2、数组的基本使用 章节:章节:7.1一维数组一维数组7.2二维数组二维数组7.3字符数组和字符串字符数组和字符串7.4应用举例应用举例n 构造数据类型之一构造数据类型之一n 数组数组:是一些具有相同数据类型且按一定的次序排列的是一些具有相同数据类型且按一定的次序排列的变量集合,即有序数据的集合变量集合,即有序数据的集合,用数组名标识。用数组名标识。n 元素元素:属同一数据类型属同一数据类型,用数组名和下标确定。每个数用数组名和下标确定。每个数组元素都具有相同的变量名,但具有不同的序号(下组元素都具有相同的变量名,但具有不同的序号(下标)。标)。n 只有一个下标的数组称为一维数组,有两个下标的数只
3、有一个下标的数组称为一维数组,有两个下标的数组称为二维数组。以此类推,组称为二维数组。以此类推,C C语言允许使用任意维数语言允许使用任意维数的数组。的数组。n 数组元素可以是基本数据类型(数组元素可以是基本数据类型(intint、floatfloat、charchar等等),也可以是构造数据类型,但最低一级必须是基本),也可以是构造数据类型,但最低一级必须是基本类型。类型。一维数组的定义一维数组的定义v定义方式:定义方式:数据类型数据类型 数组名数组名 常量常量表达式表达式;合法标识符合法标识符unsigned int类型的正整数,类型的正整数,元素个数下标从元素个数下标从0开始开始 :数组
4、运算符数组运算符单目运算符单目运算符优先级优先级(1)左结合左结合不能用不能用()例例 int a6;a00145a1a2a3a4a523a数组名是数组名是地址常量地址常量,表示表示数组元素在数组元素在内存内存中的起始中的起始地址地址a0。例如:例如:float salary100;/存放存放100个职工的工资(以实数形式存放)个职工的工资(以实数形式存放)数组名,命名方法和变量名相同数组名,命名方法和变量名相同采用方括号,而不是圆括号,不能写成采用方括号,而不是圆括号,不能写成float salary(100);其其中中100表示数组长度,即元素的个数。表示数组长度,即元素的个数。应为应为i
5、nt n;cinn;int an;#define n 10;/或或const int n=10;int an;错误提示错误提示:expected constant expression cannot allocate an array of constant size 0 a:unknown size一个数组被定义后,系统将在内存中为它分配一块含一个数组被定义后,系统将在内存中为它分配一块含有有n个(个(n为数组长度)存储单元的存储空间,每个存储单为数组长度)存储单元的存储空间,每个存储单元包含的字节数等于元素类型的长度。如对于一个含有元包含的字节数等于元素类型的长度。如对于一个含有6个个in
6、t型元素的数组,它将对应型元素的数组,它将对应6*4=24个字节的存储空间。个字节的存储空间。注意:常量表达式中可以包括常量和符号常量,不能注意:常量表达式中可以包括常量和符号常量,不能包含变量。包含变量。int a10;或或一维数组的引用一维数组的引用v数组必须数组必须先定义先定义,后使用后使用v只能逐个引用数组元素,不能一次引用整个数组只能逐个引用数组元素,不能一次引用整个数组v数组元素表示形式:数组元素表示形式:数组名数组名下标下标其中:其中:下标可以为常量,也可以为变量或表达式,下标可以为常量,也可以为变量或表达式,但其值必须是整数,否则将产生编译错误但其值必须是整数,否则将产生编译错
7、误与数组的定义格式相同,但出现的位置是不与数组的定义格式相同,但出现的位置是不同的,当出现在变量定义语句时则为数组定义,同的,当出现在变量定义语句时则为数组定义,而当出现在表达式中时则为一个元素。而当出现在表达式中时则为一个元素。例例 int num-5;(表示数组长度的常量表达式必须是正的整型常量表达式,表示数组长度的常量表达式必须是正的整型常量表达式,通常是一个大于或等于通常是一个大于或等于1的整型常量的整型常量)例例 int a10;couta;()必须必须 for(j=0;j10;j+)coutajt;()例例 int data5;data5=10;/C语言对数组不作越界检查,使用时要
8、语言对数组不作越界检查,使用时要 注意注意假定假定n为一常量为一常量对于一个含有对于一个含有n个元素的数组(个元素的数组(int an;),),C语言规定:语言规定:它的下标依次为它的下标依次为0,1,2,.,n-1,因此全部因此全部n个元素依次为个元素依次为a0,a1,a2,.,an-1,其中假定其中假定a为数组名。为数组名。例如:假定例如:假定an为一个已定义的数组,则下面都是访问该数组为一个已定义的数组,则下面都是访问该数组的下标变量的合法格式:的下标变量的合法格式:a5/下标为一个常数下标为一个常数 ai/下标为一个变量下标为一个变量 aj+/下标为后增下标为后增1表达式表达式 a2*
9、x+1/下标为一般表达式下标为一般表达式 初始化方式初始化方式v在程序运行时初始化在程序运行时初始化可以用赋值语句或输入语句在程序执行时实现初始化。可以用赋值语句或输入语句在程序执行时实现初始化。v在定义数组时初始化在定义数组时初始化数据类型数组名数据类型数组名N=值值1,值值2,值值3,值值N,;说明:说明:l数组不初始化,其元素值为随机数数组不初始化,其元素值为随机数l对对static数组元素不赋初值,系统会自动赋以数组元素不赋初值,系统会自动赋以0值值一维数组的初始化一维数组的初始化引用数组元素之前,必须保证引用数组元素之前,必须保证数组的元素已经被赋予确定的值数组的元素已经被赋予确定的
10、值 int a5=1,2,3,4,5;等价于:等价于:a0=1;a1=2;a2=3;a3=4;a4=5;l当全部数组元素赋初值时,可不指定数组长度当全部数组元素赋初值时,可不指定数组长度如如 int a5=6,2,3;等价于:等价于:a0=6;a1=2;a2=3;a3=0;a4=0;static int a5;等价于:等价于:a0=0;a1=0;a2=0;a3=0;a4=0;l只给部分数组元素赋初值只给部分数组元素赋初值 int a=1,2,3,4,5,6;编译系统根据初值个数确定数组维数编译系统根据初值个数确定数组维数 int main()int a10,i;for(i=0;i10;i+)a
11、i=i;int main()int a10,i;for(i=0;i ai;如果声明数组时,在方括号中指定了元素个数,那么初始如果声明数组时,在方括号中指定了元素个数,那么初始化时的数据个数就不能超过所指定的元素个数。化时的数据个数就不能超过所指定的元素个数。int a 5=1,2,3,4,5,6;(错误)错误)初始化时,数据个数可以少于声明数组时在方括号中指定初始化时,数据个数可以少于声明数组时在方括号中指定的元素个数,但不能一个也没有。的元素个数,但不能一个也没有。int b5=;(错误)错误)如果声明数组时,在方括号中不指定元素个数,那么必须如果声明数组时,在方括号中不指定元素个数,那么必
12、须紧接着进行初始化。紧接着进行初始化。int c;(错误)错误)声明一个能存放声明一个能存放5个整数的数组个整数的数组s,批量读入一组数,批量写,批量读入一组数,批量写入一组数。入一组数。#include using namespace std;void main()int s5;/声明存放声明存放5个整数的数组个整数的数组sfor(int i=0;i si;for(i=0;i=4;i+)/读出数组元素读出数组元素s0,s1,s2,s3,s4的值,输出到屏幕的值,输出到屏幕上上cout si t;cout endl;程序举例程序举例程序举例程序举例例例 读读10个整数存入数组,找出其中最大值和
13、最小值个整数存入数组,找出其中最大值和最小值步骤步骤:1.输入输入:for循环输入循环输入10个整数个整数2.处理处理:(a)先令先令max=min=a0(b)依次用依次用ai和和max,min比较比较(循环循环)若若maxai,令令min=ai3.输出输出:max和和min#include using namespace std;#define N 10int main()int aN,i,max,min;coutEnter 10 integers:endl;for(i=0;iN;i+)couti+1ai;max=min=a0;for(i=1;iN;i+)if(maxai)min=ai;co
14、utMaximum value is maxendl;coutMinimum value is minendl;return 0;运行结果:运行结果:Enter 10 integers:1:22:33:14:55:96:87:48:129:3010:23Maximum value is 30Minimum value is 1f0f1f2f3f4f5f19.11f1901452319例例 用数组求用数组求Fibonacci数列前数列前20个数个数235#include#include using namespace std;int main()int i;int f20=1,1;for(i=2
15、;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%5=0)coutn;coutsetw(6)fi;couta1,则交换;然则交换;然 后比较第二个数与第三个数;依次类推,直至第后比较第二个数与第三个数;依次类推,直至第n-1个数和第个数和第 n个数比较为止个数比较为止第一趟冒泡排序第一趟冒泡排序,结果结果最大最大的数被安置在的数被安置在 最后一个元素位置上最后一个元素位置上(2)对前)对前n-1个数进行第二趟冒泡排序,结果使个数进行第二趟冒泡排序,结果使次大次大的数被安置在的数被安置在 第第n-1个元素位置个元素位置(3)重复上述过程,共经过)重复上述过程,共经
16、过n-1趟冒泡排序后,排序结束趟冒泡排序后,排序结束例例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第六趟第六趟38 49 65 76 13 27 30 97第一趟第一趟49 38 65 97 76 13 27 30初始关键字初始关键字n=83849769713972797309713767676273013652765306513134949304927382738303813 27第七趟第七趟输入输入n 个数给个数给a1 到到 anfor j=1
17、to n-1for i=1 to n-jaiai+1真真假假aiai+1输出输出a1 到到 an#include using namespace std;int main()int a11,i,j,t;coutInput 10 numbers:endl;for(i=1;iai;coutendl;for(j=1;j=9;j+)for(i=1;iai+1)t=ai;ai=ai+1;ai+1=t;coutThe sorted numbers:endl;for(i=1;i11;i+)coutai;return 0;例例 用简单选择法对用简单选择法对10个数排序个数排序排序过程:排序过程:(1)首先通过
18、)首先通过n-1次比较,从次比较,从n个数中找出最小的,个数中找出最小的,将它与第一个数将它与第一个数 交换交换第一趟选择排序第一趟选择排序,结果,结果最小最小的数被安置在第一个元素位置上的数被安置在第一个元素位置上(2)再通过)再通过n-2次比较,从剩余的次比较,从剩余的n-1个数中找出关键字个数中找出关键字次小次小的记录,的记录,将它与第二个数交换将它与第二个数交换第二趟选择排序第二趟选择排序(3)重复上述过程,共经过)重复上述过程,共经过n-1趟排序后,排序结束趟排序后,排序结束二趟:二趟:13 27 65 97 76 49 38 例例初始:初始:49 38 65 97 76 13 27
19、 ji=11349一趟:一趟:13 38 65 97 76 49 27 i=22738三趟:三趟: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 kkkkjjjjjjjjjjk输入输入n 个数给个数给a1 到到 anfor i=1 to n-1for j=i+1 to najak真真假假min=aj k=j输出输出a1 到到 anmin=ai k=iai=minak=ai#include using namespace std;int ma
20、in()int a11,i,j,k,min;coutInput 10 numbers:endl;for(i=1;iai;coutendl;for(i=1;i10;i+)min=ai;k=i;for(j=i+1;j=10;j+)if(ajak)min=aj;k=j;ak=ai;ai=min;coutThe sorted numbers:endl;for(i=1;i11;i+)coutai;return 0;#include iostream#include iomanip“using namespace std;#define N 6int main()int aN,bB-60,c=1,2,3,
21、4,5,6,i;for(i=0;iaibi;for(i=0;iN;i+)coutsetw(6)ai;coutendl;for(i=0;iN;i+)coutsetw(6)bi;coutendl;for(i=0;iN;i+)ci=ai+bN-i-1;for(i=0;iN;i+)coutsetw(6)ci;coutendl;return 0;数组定义:必须用常量表达式数组定义:必须用常量表达式数组元素引用数组元素引用二维数组的定义二维数组的定义v定义方式:定义方式:数据类型数组名数据类型数组名常量表达式常量表达式常量表达式常量表达式;v数组元素的存放顺序数组元素的存放顺序l原因原因:内存是一维的内存
22、是一维的l二维数组:按行序优先二维数组:按行序优先l多维数组:最右下标变化最快多维数组:最右下标变化最快例例 int a34;float b25;int c234;int a3,4;()行数行数列数列数元素个数元素个数=行数行数*列数列数int a32a01a10a11a20a21014523a00a00 a01a10 a11a20 a21例例 int a34;a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23a0a1a2行名行名aa01a02a03a10a11a00a13a20a21a22a23a1201452367101189a0a1a2a aa a
23、是一个二维数组,具有是一个二维数组,具有3 3行行4 4列,共定义了列,共定义了1212个个intint型变量;第一维下标型变量;第一维下标变化范围为变化范围为0202,第二维下标变化范围为,第二维下标变化范围为0303。数组各元素在内存中连续存放,按行排列(因内存是一维存储空间)。数组各元素在内存中连续存放,按行排列(因内存是一维存储空间)。a a是数组名且表示数组在内存中的首址。是数组名且表示数组在内存中的首址。二维数组二维数组a是由是由3个元素组成个元素组成每个元素每个元素ai由包含由包含4个元个元素素的一维数组组成的一维数组组成例例 int a3=1,4,5;a00 a01 a02 a
24、10 a11 a12100450第一维第一维长度省略初始化长度省略初始化l按元素排列顺序初始化按元素排列顺序初始化 例例 int a23=1,2,3,4,5,6;a00 a01 a02 a10 a11 a12123456全部初始化全部初始化例例 int a23=1,2,4;a00 a01 a02 a10 a11 a12120400部分初始化部分初始化例例 int a23=1,2,3,4,5,6;a00 a01 a02 a10 a11 a12123456全部初始化全部初始化 例例 int a23=1,2,4;a00 a01 a02 a10 a11 a12124000部分初始化部分初始化例例 in
25、t a3=1,2,3,4,5;a00 a01 a02 a10 a11 a12123450第一维第一维长度省略初始化长度省略初始化二维数组元素的引用二维数组元素的引用形式:形式:数组名数组名下标下标下标下标二维数组元素的初始化二维数组元素的初始化l分行初始化:分行初始化:程序举例程序举例例例 将二维数组行列元素互换,存到另一个数组中将二维数组行列元素互换,存到另一个数组中(23矩阵转置)矩阵转置)a=1 2 34 5 6b=1 42 53 6#include#include using namespace std;int main()int a23=1,2,3,4,5,6;int b32,i,j
26、;coutarray a:endl;for(i=0;i=1;i+)for(j=0;j=2;j+)coutsetw(5)aij;bji=aij;coutendl;coutarray b:endl;for(i=0;i=2;i+)for(j=0;j=1;j+)coutsetw(5)bij;coutmax真真假假max=aijrow=icolum=j输出输出:max和和row,colum#include using namespace std;int main()int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;int i,j,row=0,column=0,max;max=a00
27、;for(i=0;i=2;i+)for(j=0;jmax)max=aij;row=i;column=j;coutmax=max,row=row,column=columnendl;return 0;例例 读入下表中值到数组,分别求各行、各列及表中所有数之和读入下表中值到数组,分别求各行、各列及表中所有数之和12 4 615 7 9 8 23 3 2 5 1712 4 6 2215 7 9 31 8 23 3 34 2 5 17 2437 39 35 111#include#include using namespace std;int main()int x54,i,j;for(i=0;i4;
28、i+)for(j=0;jxij;for(i=0;i3;i+)x4i=0;for(j=0;j5;j+)xj3=0;for(i=0;i4;i+)for(j=0;j3;j+)xi3+=xij;x4j+=xij;x43+=xij;for(i=0;i5;i+)for(j=0;j4;j+)coutsetw(5)xij;coutendl;return 0;例例 char ch5=H,e,l,l,o;ch0Hello逐个字符赋值逐个字符赋值ch1ch2ch3ch4有问题有问题!例例 char ch5=H,e,l,l,o;ch0Hello逐个字符赋值逐个字符赋值ch1ch2ch3ch4 例例 char ch5=
29、B,o,y;ch0Boy00逐个字符赋值逐个字符赋值ch1ch2ch3ch4 例例 char ch5=“Boy”;ch0Boy00用字符串常量用字符串常量ch1ch2ch3ch4 例例 char ch6=“Hello”;char ch6=“Hello”;char ch=“Hello”;用字符串常量用字符串常量ch0Helloch1ch2ch3ch40ch5逐个字符赋值初始化会在程序处理变量逐个字符赋值初始化会在程序处理变量ch时发生错误,时发生错误,因为因为C不知道其中的字符串到哪个元素为止。此外,如不知道其中的字符串到哪个元素为止。此外,如果花括号中提供的字符个数小于数组长度,将只为数组果花
30、括号中提供的字符个数小于数组长度,将只为数组的前几个元素赋初值,其余的元素自动被赋予空字符。的前几个元素赋初值,其余的元素自动被赋予空字符。如果初值个数大于数组长度,则认为是语法错误。如果初值个数大于数组长度,则认为是语法错误。正确的做法是在初始化时加上结束符,即正确的做法是在初始化时加上结束符,即 char ch6=H,e,l,l,o,0;用字符串常量初始化会自动地在最后一个字符后面用字符串常量初始化会自动地在最后一个字符后面加上一个加上一个0,作为字符串的结束符。由于字符串的长度,作为字符串的结束符。由于字符串的长度在程序的运行过程中允许发生变化,所以在程序的运行过程中允许发生变化,所以C
31、+要依靠结束要依靠结束符来判断字符串的结束,声明数组时必须留出这个位置,符来判断字符串的结束,声明数组时必须留出这个位置,换句话说,方括号中指定的元素个数必须大于将来存放字换句话说,方括号中指定的元素个数必须大于将来存放字符串的最大长度。符串的最大长度。与整型实型数组的初始化不同,声明数组时在方括号与整型实型数组的初始化不同,声明数组时在方括号中指定了元素个数后,初始化的字符串可以是没有字符的中指定了元素个数后,初始化的字符串可以是没有字符的空串,即空串,即”。字符数组字符数组v定义定义 v字符数组的初始化字符数组的初始化l逐个字符赋值逐个字符赋值l用字符串常量用字符串常量v字符数组的引字符数
32、组的引例例 char c10,ch34;例例 char diamond5=.,.,*,.,*,.,*,*,.,.,.,*,.,*,.,*,.,.,*;二维字符数组初始化二维字符数组初始化.*00.*.*0*.*.*.*0.*00diamond0diamond1diamond2diamond3diamond4 例例 char fruit7=“Apple”,”Orange”,”Grape”,”Pear”,”Peach”;二维字符数组初始化二维字符数组初始化fruit0fruit1fruit2fruit3fruit4Apple00Orange0Grape00Pear000Peach00例例 输出一个
33、字符串输出一个字符串#include using namespace std;int main()char c10=I,a,m,a,b,o,y;int i;for(i=0;i10;i+)coutci;coutendl;return 0;Iamaboy0123456789例例 计算给定字符串的长度,不包括结束符计算给定字符串的长度,不包括结束符0。#include using namespace std;int main()char str=Happy;int i;i=0;while(stri!=0)i+;coutThe length of string is iendl;return 0;字符
34、串字符串v字符串及其结束标志字符串及其结束标志l无字符串变量,用字符数组处理字符串无字符串变量,用字符数组处理字符串l字符串结束标志字符串结束标志:0例例 “hello”共共5个字符,在内存占个字符,在内存占6个字节个字节 字符串长度字符串长度5 h e l l o 0104 101 108 108 111 0内存存放字符内存存放字符ASCII码码结果:结果:The length of string is 5输出输出1)屏幕输出)屏幕输出#include using namespace std;int main()char a=China;couta;/a为数组名,将字符串输出至屏幕。输出输出
35、2)字符串输出和整数、实数、字符输出的区别)字符串输出和整数、实数、字符输出的区别&对于整数、实数和字符,对于整数、实数和字符,cout每次只能输出一个。每次只能输出一个。&对于字符串既可一次输出,也可按字符多次输出。对于字符串既可一次输出,也可按字符多次输出。当字符串一次输出时,系统根据当字符串一次输出时,系统根据0找到字符串尾。找到字符串尾。若按字符一个个输出,若按字符一个个输出,cout根据字符串中字符个数输出。根据字符串中字符个数输出。for(i=0;i字符串中字符个数字符串中字符个数;i+)couta;/*a为数组名,从键盘输入多个字符,以回车作为结束,系统自动在读入的字符串未尾添加
36、0。*/输入输入2)字符串输入和整数、实数、字符输入的区别)字符串输入和整数、实数、字符输入的区别&对于整数、实数和字符,对于整数、实数和字符,cin每次只能输入一个。每次只能输入一个。&对于字符串既可一次输入,也可按字符多次输入。对于字符串既可一次输入,也可按字符多次输入。当字符串一次输入时,系统自动在尾部添加当字符串一次输入时,系统自动在尾部添加0。若按字符一个个输入,必须已知字符个数,并且应由用若按字符一个个输入,必须已知字符个数,并且应由用户程序在其末尾添加户程序在其末尾添加0。#include using namespace std;int main()char a10;int i;
37、for(i=0;iai;a9=0;例从键盘读入一字符串,计算出其长度例从键盘读入一字符串,计算出其长度(即有效字符个数),将长度输出至屏幕。(即有效字符个数),将长度输出至屏幕。#include using namespace std;int main()char s100;cins;int i=0;while(si!=0)i+;couta;(2)couta;是允许的,即允许在提取或插入操作符后面使用一个字符数是允许的,即允许在提取或插入操作符后面使用一个字符数组名实现向数组输入字符串或输出数组中保存的字符串的目组名实现向数组输入字符串或输出数组中保存的字符串的目的。的。计算机执行上述第一条语
38、句时,要求用户从键盘上输入计算机执行上述第一条语句时,要求用户从键盘上输入一个不含空格的字符串,用空格或回车键作为字符串输入的一个不含空格的字符串,用空格或回车键作为字符串输入的结束符,系统就把该字符串存入到字符数组结束符,系统就把该字符串存入到字符数组a中,当然在存入中,当然在存入的整个字符串的后面将自动存入一个结束符的整个字符串的后面将自动存入一个结束符0。例如:字符数组长度为例如:字符数组长度为10v输入字符串输入字符串string,结果为结果为stringv输入字符串输入字符串str ing,结果为结果为strv输入字符串输入字符串stringandchar,结果报错。结果报错。v输入
39、字符串输入字符串“string”,结果为结果为“string”注意:输入的字符串的长度要小于数组注意:输入的字符串的长度要小于数组a的长度,这样才能够的长度,这样才能够把输入的字符串有效地存储起来,否则是程序设计的一个逻把输入的字符串有效地存储起来,否则是程序设计的一个逻辑错误,可能导致程序运行出错。另外,输入的字符串不需辑错误,可能导致程序运行出错。另外,输入的字符串不需要另加双引号定界符,只要输入字符串本身即可,假如输入要另加双引号定界符,只要输入字符串本身即可,假如输入了双引号则被视为一般字符。了双引号则被视为一般字符。例题:编写程序,实现功能:输入一字符串,计例题:编写程序,实现功能:
40、输入一字符串,计算并输出该字符串的长度。算并输出该字符串的长度。确定算法:确定算法:用字符数组用字符数组str256保存字符串,用整型变量保存字符串,用整型变量strlen记录长记录长度,初值为度,初值为0。1.显示输入提示信息显示输入提示信息 2.输入字符串到输入字符串到str 3.循环变量循环变量i取初值取初值0 4.如果如果stri的值是的值是0转到转到6 5.strlen加加1,i加加1,转回到,转回到4 6.输出输出strlen的值的值#include using namespace std;int main()char str256=;int strlen=0;cout str;i
41、nt i=0;while(stri!=0)strlen+;i+;cout 字符串的长度字符串的长度 strlen n;return 0;例题:编写程序,实现功能:输入一字符串,计例题:编写程序,实现功能:输入一字符串,计算并输出其中字母算并输出其中字母e(大小写不论)的个数。大小写不论)的个数。确定算法:确定算法:用字符数组用字符数组str256保存字符串,用整型变量保存字符串,用整型变量count记录字记录字母母e的个数,初值为的个数,初值为0。1.显示输入提示信息显示输入提示信息 2.输入字符串到输入字符串到str 3.循环变量循环变量i取初值取初值0 4.如果如果stri的值是的值是0,
42、转到,转到7 5.如果如果stri的值是字符的值是字符e或或E,count加加1 6.i加加1,转回到,转回到4 7.输出输出count的值的值#include using namespace std;int main()char str256=;int count=0;cout str;int i=0;while(stri!=0)if(stri=e|stri=E)count+;i+;cout 字符串中字符串中e或或E的个数的个数 count str1;/abcin str2;/cdei=0;while(str1i!=0)i+;/i=2j=0;while(str2j!=0)str1i=str2
43、j;i+;j+;str1i=0;cout 拼接后字符串拼接后字符串:str1 str1;cin str2;i=0;while(str1i!=0)i+;j=0;while(str2j!=0)str1i+=str2j+;/i+;/j+;str1i=0;cout 拼接后字符串拼接后字符串:str1 str1;cin str2;i=0;while(str1i!=0)i+;j=0;while(str1i+=str2j+)!=0);cout 拼接后字符串拼接后字符串:str1 str;i=0;for(i=0;i=a)&(si=A)&(si=Z)j=si-A;countj+;i+;for(i=0;i 26;
44、i+)cout counti ;例题:编写程序,实现功能:键盘选择币种,输入例题:编写程序,实现功能:键盘选择币种,输入金额,然后折算成人民币金额输出。假定每一百单金额,然后折算成人民币金额输出。假定每一百单位外币折合人民币如下:位外币折合人民币如下:英镑英镑 港币港币 美元美元 1221.25 106.125 827.75 确定算法:确定算法:用实型数组用实型数组list4存放汇率,从下标存放汇率,从下标1开始使用,在声明时初始化;开始使用,在声明时初始化;用整型变量用整型变量choice存放键盘输入的选择,用实型变量存放键盘输入的选择,用实型变量money存放键存放键盘输入的金额,用实型变
45、量盘输入的金额,用实型变量rmb存放计算结果。存放计算结果。1.显示选择的提示信息显示选择的提示信息 2.从键盘输入选择到从键盘输入选择到choice 3.如果如果choice等于等于0,转到,转到4;如果;如果choice等于等于1或或2或或3,转到,转到5;如;如果果choice为其他,值转到为其他,值转到9 4.结束运行结束运行 5.显示输入金额的提示信息显示输入金额的提示信息 6.从键盘输入金额到从键盘输入金额到money 7.计算并输出计算并输出 8.转到转到10 9.显示错误信息显示错误信息 10.转回到转回到1#include#include using namespace st
46、d;int main()float list4=0,1221.25,106.125,827.75;int choice;float money,rmb;while(1)cout choice;switch(choice)case 0:exit(0);case 1:case 2:case 3:cout money;rmb=money*listchoice/100;cout 折算人民币金额折算人民币金额 rmb endl;break;default:cout 19,转到,转到5 3、numbersi=numbersi-2+numbersi-1 4、i加加1,转回到,转回到2 5、跳出本次循环,执行
47、下一条语句,进入另一个新循环,循、跳出本次循环,执行下一条语句,进入另一个新循环,循环变量环变量i取初值取初值1 6、如果、如果i 19,转到,转到9 7、输出、输出numbersi 8、i加加1,转回到,转回到6 9、结束运行、结束运行#include using namespace std;int main()int numbers21=0,1;/其余各位为零其余各位为零int i;for(i=2;i=19;i+)numbersi=numbersi-2+numbersi-1;for(i=0;i=19;i+)cout numbersi t;cout 19,转到,转到6 4、numbersi=
48、k+i 5、i加加1,转回到,转回到3 6、跳出本次循环,执行下一条语句,进入新循环,、跳出本次循环,执行下一条语句,进入新循环,i取初值取初值1 7、如果、如果i 19,转到,转到13 8、输出、输出numbersi 9、count加加1 10、如果、如果count=5,继续执行继续执行11,否则转到,否则转到12(控制每行输出控制每行输出5个数个数)11、输出换行、输出换行count的值恢复为的值恢复为0 12、i加加1,转回到,转回到7 13、结束运行、结束运行#include using namespace std;int main()int numbers20;int i,k,cou
49、nt=0;cout k;for(i=0;i=19;i+)numbersi=k+i;for(i=0;i=19;i+)cout numbersi t;count+;if(count=5)cout endl;count=0;cout endl;return 0;例题:编写程序,实现功能:从键盘输入一个学生例题:编写程序,实现功能:从键盘输入一个学生成绩,然后将其插入到一个降序排列的成绩表中,成绩,然后将其插入到一个降序排列的成绩表中,插入后的成绩表仍然保持降序,最后输出结果。插入后的成绩表仍然保持降序,最后输出结果。假定成绩表存放在数组假定成绩表存放在数组scores中,输入的成绩是中,输入的成绩是
50、x,首先要在首先要在成绩表中从头开始找到第一个比成绩表中从头开始找到第一个比x小的成绩,小的成绩,x就应该插在这个成绩就应该插在这个成绩之前,为了空出之前,为了空出x的存放位置,从这个成绩开始,直到最后一个成的存放位置,从这个成绩开始,直到最后一个成绩,都要向后移动一个位置。绩,都要向后移动一个位置。确定算法:确定算法:假定成绩表中原有假定成绩表中原有N个成绩,用实型数组个成绩,用实型数组scoresN+2存放存放N个成绩,个成绩,从下标从下标1开始,在声明时初始化,多余一个位置准备插入新的成绩;开始,在声明时初始化,多余一个位置准备插入新的成绩;用实型变量用实型变量x存放键盘输入的成绩。存放
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。