cout<<\ sum=0;
for (i=0;i<4;i++)
sum=a[i]+sum; //利用for循环语句求和。 cout<<\ avg=sum/4.0;
cout<<\}
运行结果为: a[0]=1 a[1]=3 a[2]=5 a[3]=7
1 3 5 7 1 3 5 7 sum=16 sum=16 avg=4
第二节 二维数组的定义和数组元素的引用
二维数组定义的一般形式为:
数组类型 数组名[常量表达式1][常量表达式2];
可以把二维数组看作特殊的一维数组,它的元素又是一个一维数组。例如,可以把a[4][3]看作是一个一维数组,它有4个元素:a[0],a[1],a[2],a[3],每个元素又是一个包含3个元素的一维数组,即该数组有4行3列共12个元素,如图4-2所示。在C++语言中,二维数组是按行的顺序存储的。
根据初始化列表的不同,二维数组元素的初始化方法也不同,常用的有以下几种方法: (1)对二维数组元素赋初值,以每行为一组,分行初始化。 例如,int a[4][3]={{0,1,2},{3,4,5},{6,7,8},{9,10,11}}; 例如 , int a[4][3]={{0,1},{},{0,0,2},{0,1}} 例如,a[4][3]={{1},{5},{6},{7}} 注意:省略元素赋值为0
(2)所有的数据写在一个花括弧内,按存储顺序赋值。
例如,int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11},则a[1][1]=5。 例如,int a[4][3]={0,1,2,3,4,5,6,7,8,9,10,11},则a[3][2]=11。 (3)若采用第二种方法,可以省略第一维的长度。 例如,int a[2][3]={1,2,3,4,5,6}可以写成 int a[ ][3]={1,2,3,4,5,6}。
(4)二维数组的元素赋初始值,可用二重循环语句。 例如,for(int i=0;i<4;i++)
for(int j=0;j<4;j++) a[i][j]=i+j; 引用二维数组元素的格式为:
数组名 [行下标][列下标]
例如,int a[2][3]定义了一个2行3列的整数数组,如引用其中的第2行、第1列元素应写为a[1][0]。 注意:
不要把int a[3][2] 写成int a[3,2]。
下标值要在已定义的数组的最大范围内,即不要越界。 【例4.4】已知4名学生的数理化成绩分别为{78,85,79}、{63,72,70}、{86,78,93}、74,63,77},求出并显示每个学生的平均成绩及总的平均成绩。 #include
for(int j=0;j<3;j++) c[i]+=d[i][j]; //求每名学生的总成绩 cout< cout< 程序的执行结果为: 80.6667 68.3333 85.6667 71.3333 76.5 return 第三节 字符数组的定义及初始化 字符数组定义的格式为:char 数组名[n]; 字符数组的初始化一般有如下两种方法: ⑴逐个字符赋给数组中的元素。 【例4.5】逐个字符初始化字符数组。 #include char a[13]={'H','e','l','l','o',',','W','o','r','l','d','!'}; cout< 注意:如果花括弧中提供的初值字符个数大于数组长度,则作语法错误 处理,如果初值个数小于数组长度,则多余的数组元素自动定义为字符 串结束符‘\\0’。 ⑵对整个字符数组赋初值。 例如:char a[13]= \ 运行程序,输出结果为: Hello,World! d 编译系统提供的字符串处理函数放在string.h头文件中,在调用字符串处理函数时,要包含string.h头文件。 1.字符串拷贝函数strcpy() 格式:strcpy(str1, str2); 该函数的功能是将str2所指向的字符串复制到str1所指向的字符数组中,然后返回str1的地址值。 2.字符串连接函数strcat() 格式:strcat(str1, str2); 该函数的功能是将str2所指向的字符串连接到str1所指向的字符数组中。然后返回str1的地址值。 注意: 以上两个函数都要保证str1的空间足够大。 两个字符数组连接后,则前一个数组的结束字符'\\0'消失了。 3.字符串比较函数strcmp():功能是从左到右比较两个字符串的大小(按ASCII码值大小比较),直到出现不同的字符或遇到‘\\0’为止。如果两个字符串中全部字符串都相同,则认为两个字符串相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准,比较的结果由函数值带回。 ⑴如果字符串1和字符串2完全相同,函数值为0; ⑵如果字符串1大于字符串2,函数值为1; ⑶如果字符串1小于字符串2,函数值为-1。 格式:strcmp(str1, str2); 4.字符串长度函数strlen():该函数的功能是计算字符串 的长度。 格式:strlen(str); 该函数将计算str所指向字符串的长度,函数值为字符 的实际长度,而不是分配的空间。例如: char str[10]={ \ cout< 输出的结果为5,不是6,也不是10。 【例4.7】字符串处理函数的使用。 #include \#include \void main() { char stra[50]=\ char strb[]=\ char strc[]=\ cout< strcpy(stra,strb); //字符串复制 cout< strcat(stra,strc); //字符串连接 cout< 程序执行结果为: china Beijing Beijing Beijing BeijingShanghai Shanghai x1=-1 x2= 0 x3= 1 BeijingShanghai length is: 15 return int x1,x2,x3; x1=strcmp(\ //字符串比较 x2=strcmp(\ //字符串比较 x3=strcmp(\ //字符串比较 cout<< \ cout<< \ cout<< \ cout< 【例4.8】编程求出一个二维字符数组里为'a'的元素个数。 #include void reada(char a[5][4]); void main() { char a[5][4]; int i ,j,number=0; reada(a); for(i=0;i<5;i++) for(j=0;j<4;j++) { if(a[i][j]!='a') continue; number++; } cout<<\这个字符串中有:\个a\} void reada(char a[5][4]) { int i,j; cout<<\请输入字符串:\for(i=0;i<5;i++) for(j=0;j<4;j++) cin>>a[i][j]; } 程序的执行结果为: 请输入字符串: sfdsgfaahsfyhsfdahdg 这个字符串中有:3个a return 作业 教材P77-78所有习题 第5章 结构体和共用体 本章课时: 8课时 本章重点: 结构体变量的定义 结构体的定义 本章难点: 结构体变量的定义 教学内容及目标: 了解: 结构体和共用体的适用范围和区别 理解: 1.结构体变量与共用体变量的初始化 2.字符串存储和字符串的访问 掌握: 1.结构体和共用体的定义 2.结构体变量和共用体变量的访问 3.结构体数组的使用 第一节 结构体 结构体的定义 结构体定义的一般语法形式为: struct 结构体名 { 数据类型 成员1; 数据类型 成员2; ┇ 数据类型 成员n; }; 例如: