圈上序大峰 一维数组 例2一维数组的声明赋初值与引用 #include <iostream> for(i=0;i<5;i++) using namespace std: void main() cout<A门<x'<B[; cout<<‘=‘<<C[i]<<endl: f1oatA[5={2.5,2.0,1.2,4.5,3.0}; float B[]={3.0,2.4,6.5,1.2,5.0; float C[5]; int i; for(i=0;i<5;i++) { C[问=A*B[ 11/50 上泽克大¥ 1896 1920 2005 1. 数组概念 2.一维数组 3.二维数组 4.字符数组/字符串 5.结构 6
6 11/50 一维数组 例2 一维数组的声明赋初值与引用 #include <iostream> using namespace std; void main() { float A[5] = {2.5, 2.0, 1.2, 4.5, 3.0}; float B[ ] = {3.0, 2.4, 6.5, 1.2, 5.0}; float C[5]; int i; for(i=0;i<5;i++) { C[i] = A[i]*B[i]; } for(i=0;i<5;i++) { cout<<A[i]<<‘ x ’<<B[i]; cout<<‘=‘ <<C[i]<<endl; } } 1. 数组概念 2. 一维数组 3. 二维数组 4. 字符数组/字符串 5. 结构
圈上泽文通大华 二维数组 二维数组的声明及引用 >二维数组的声明 类型说明符数组名[常量表达式[常量表达式] 例如:float a[3[4: a[0] -aoo a01 a02 a03 可以理解为: a a[1 -a10a11a12a13 a[2] -a20a21a22a23 >存储顺序 按行存放,上例中数组a的存储顺序为: a0a01ag2a03a10a11a12a13a20a21a2a23 >引用(赋值) 例如:a21o1=0.5;b1[21=a2I3/2:☑ af01=2.0:a314=0.2;a21[4=0.5:☒ 13/50 圆上泽充通大学 二维数组 二维数组的初始化 >将所有数据写在一个(}内,按顺序赋值 例如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12: > 分行给二维数组赋初值 例如:inta3][4]={1,2,3,4,{5,6,7,83,{9,10,1L,12}5 >可以对部分元素赋初值 例如:inta3][4]={1},{0,6},{0,0,11}: >在对全部数组元素赋初值时,可以不指定数组长度 例如:inta0[4={1,2,3,4,5,6,7,8,9,10,1l,12 例如:inta0={1,2,3,4},{5,6,7,8},{9,10,11,12}5 14/50 7
7 13/50 二维数组 二维数组的声明及引用 二维数组的声明 类型说明符 数组名[常量表达式][常量表达式] 例如:float a[3][4]; 可以理解为: a[0]——a00 a01 a02 a03 a[1]——a10 a11 a12 a13 a[2]——a20 a21 a22 a23 a 存储顺序 按行存放,上例中数组a的存储顺序为: a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23 引用(赋值) 例如:a[2][0] = 0.5; b[1][2]=a[2][3]/2; a[0] = 2.0; a[3][4] = 0.2; a[2][4] = 0.5; 14/50 二维数组 二维数组的初始化 将所有数据写在一个{ }内,按顺序赋值 例如:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 分行给二维数组赋初值 例如: int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 可以对部分元素赋初值 例如: int a[3][4]={{1},{0,6},{0,0,11}}; 在对全部数组元素赋初值时,可以不指定数组长度 例如:int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 例如: int a[][]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
圈上序大峰 数组应用 数组作为函数参数 >数组元素作实参,与单个变量一样。 > 数组名作参数,形、实参数都应是数组名,类型 要一样,传送的是数组首地址。对形参数组的改 变会直接影响到实参数组。 函数实现返回多个值 15/50 圆上泽夫通大学 数组应用 例2使用数组名作为函数参数 问题: 1.主函数中初始化一个矩阵并将每个元素都输出; 2.调用子函数,分别计算每一行的元素之和,将和直 接存放在每行的第一个元素中: 3.返回主函数之后输出各行元素的和。 16/50 8
8 15/50 数组应用 数组作为函数参数 数组元素作实参,与单个变量一样。 数组名作参数,形、实参数都应是数组名,类型 要一样,传送的是数组首地址。对形参数组的改 变会直接影响到实参数组。 函数实现返回多个值 16/50 数组应用 例2 使用数组名作为函数参数 问题: 1. 主函数中初始化一个矩阵并将每个元素都输出; 2. 调用子函数,分别计算每一行的元素之和,将和直 接存放在每行的第一个元素中; 3. 返回主函数之后输出各行元素的和
圈上泽支大学 数组应用 例2使用数组名作为函数参数 void main(void) #include <iostream> A using namespace std; int Table[34]=((1,2,3,4), void RowSum(int A[l[4],int nrow) {2,3,4,5,3,45,6 int sum; for (inti=0;i<3;i++) for (inti=0;i<nrow;i++) for (intj=0;j<4;j++) sum=0; cout <Tableli]lj]<<""; for(intj=0;j<4;j++) cout <endl; sum +=A[i]j]; } cout <"Sum of row "<<i RowSum(Table,3); <<is "<sum <endl; for (inti=0;i<3;i+) A[il[0]=sum; cout <Table[i][0] 17/50 国上泽发1大学 数组应用 例2使用数组名作为函数参数 运行结果: 1234 2345 3456 Sum of row 0 is 10 Sum ofrow I is 14 Sum of row 2 is 18 101418 18/50 9
9 17/50 数组应用 例2 使用数组名作为函数参数 void main(void) { int Table[3][4] = {{1,2,3,4}, {2,3,4,5},{3,4,5,6}}; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) cout << Table[i][j] << " "; cout << endl; } RowSum(Table,3); for (int i = 0; i < 3; i++) cout << Table[i][0] } #include <iostream> using namespace std; void RowSum(int A[][4], int nrow) { int sum; for (int i = 0; i < nrow; i++) { sum = 0; for(int j = 0; j < 4; j++) sum += A[i][j]; cout << "Sum of row " << i << " is " << sum << endl; A[i][0]=sum; } } 18/50 数组应用 例2 使用数组名作为函数参数 运行结果: 1 2 3 4 2 3 4 5 3 4 5 6 Sum of row 0 is 10 Sum of row 1 is 14 Sum of row 2 is 18 10 14 18