铁岭市中考满分作文-第5章 数组(2)
时间:2025-05-14
时间:2025-05-14
第5章 数组5.1 一维数组的定义和引用 5.2 二维数组的定义和引用 5.3 用数组名作函数参数 5.4 字符数组 5.5 字符串类与字符串变量1
5.2 二维数组的定义和引用一、定义二维数组 1、格式 类型名 数组名[常量表达式1][常量表达式2] ; 如:int a[3][4]; 含义:二维整型数组a;两个下标—行下标、列下标; 一维长度为3,二维长度为4; 共有含12个元素,分别是: a[0][0]、a[0][1]、a[0][2]、a[0][3] —a[0] a[1][0]、a[1][1]、a[1][2]、a[1][3] —a[1] a[2][0]、a[2][1]、a[2][2]、a[2][3] —a[2] 注:a[0],a[1],a[2]可当作数组名。2
二、二维数组的存储 1、特点:按行顺序存放,地址连续 2、举例:int a[3][4];
…… a[0][0] a[0][1] a[0][2]
a[0]
3、说明
a:第0行地址; a+1:第1行地址; a+2:第2行地址; a[0]:第0行0列元素的地址,&a[0][0];
a[0][3]a[1][0] ……
a[1]
a[2][0]a[2][1] a[2][2] ……
a[2]
a[1]+1:第1行1列元素的地址, &a[1][1]; a[2][3]3
三、二维数组的初始化(1)分行赋初值 int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; (2)按存储顺序赋值 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
(3)对部分元素赋初值int a[3][4]={{1},{0,6},{0,0,11}}; (4)初始化时,可省略第一维的长度 int a[][4]= {1,2,3,4,5,6,7,8,9,10,11,12}; int a[ ][4]={{1,2,3},{},{9,10}};4
四、引用二维数组的元素1、形式 数组名[下标][下标]
2、注意 先定义,后引用 只能逐个引用数组元素的值
如:int a[3][4]; 下标为整型表达式 使用时,下标不要越界
for(i=0;i<3;i++)
for(j=0;j<4;i++) 双重循环 cin>>a[i][j];
如:a[0][4] a[3][3] a[3][4] a[2][3]
五、综合举例某班有30名同学,每名同学有5门课程。求:(1)每个学生的平均分 (2)每门课程的平均分 分析:
定义二维数组 double s[30][5],其中每行用来存储1 名同学5门课程的成绩; 利用双重循环输入30名同学5门课程的成绩
求某个学生或某门课程的平均成绩,用一重循环;求每个学生或每门课程的平均成绩,用双重循环。6
参考程序:#include <iostream> using namespace std; int main( ) { double s[30][5]; double cou_ave[5]; double stu_ave[30]; int i,j; for(i=0;i<30;i++) for(j=0;j<5;j++) cin>>s[i][j]; for(i=0;i<30;i++)
{ stu_ave[i]=0;for(j=0;j<5;j++) stu_ave[i]=stu_ave[i]+s[i][j]; stu_ave[i]=stu_ave[i]/5; cout<<"学生"<<i<<"的平均成绩" <<stu_ave[i]<<" } cout<<endl; ";
参考程序(续)for(i=0;i<5;i++) { cou_ave[i]=0; for(j=0;j<30;j++) cou_ave[i]=cou_ave[i]+s[j][i]; cou_ave[i]=cou_ave[i]/30; cout<<"课程"<<i<<"的平均成绩" <<cou_ave[i]<<" "; } cout<<endl; return 0; }8
5.3 数组作为函数参数一、分类 数组元素
数组名
二、数组元素作为函数参数 思考? 1、数组元素作为函数形参还是实参? 只能作
为函数实参,数组元素不能单独定义 2、若数组元素为实参,对应形参应为? 类型相匹配的变量9
例1:对全班30名同学的C++成绩进行调整。 55≤s ≤6060<s ≤70 调整原则 70<s ≤80 80<s ≤90 要求: 90<s
+5分+4分 +3分 +2分 +1分
(1)定义一个函数modify实现对某名同学成绩的调整; (2)主函数内输入30名同学的成绩,通过调用modify函数
实现每名同学成绩的调整。
参考程序:#include <iostream> using namespace std; double modify(double x); int main( ) { double s[30]; int i; for(i=0;i<30;i++) cin>>s[i]; for(i=0;i<30;i++) { s[i]=modify(s[i]); cout<<s[i]<<endl; } return 0; } double modify(double x) { if(x<55) x=x; else if(x<=60) x=x+5; else if(x<=70) x=x+4; else if(x<=80) x=x+3; else if(x<=90) x=x+2; else x=x+1; return x; }11
三、数组名作为函数参数
数组名作为函数形参还是实参? 既可为实参,也可为形参。
实参——对应形参可为数组名或指针变量 形参——对应实参为数组名、指针变量 数组元素的地址或变量的地址
建议:实参与形参类型尽量保持一致。
参数间的传送
变量作为参数——传递的是变量的值 数组名作为函数参数——传递的是数组的地址12
例2:变量作为函数参数#include <iostream> using namespace std; void change(int x,int y); int main( ) }a 10 b 20
void change(int x,int y){ int t; t=x; x=y; y=t;
{ int a,b;a=10;b=20; change(a,b); cout<<a<<' '<<b<<endl; return 0; }
x
20 10
y
10 20
10 20 13
例3:数组名作为函数参数
#include <iostream>using namespace std; void change(int s[5]); int main( ) { int a[5],i;
void change(int s[5]){int i; for(i=0;i<5;i++) s[i]=i; }
change(a);for(i=0;i<5;i++) cout<<a[i]<<endl; return 0; }地 址
a s
a[0] a[1] a[2] a[3] a[4]
0
1
2
3
4
s[0] s[1] s[2] s[3] s[4]
a和s是同一块内存单元的2个名字14
小结:
变量作为函数参数,若在被调函数中改变了形参变量数组名作为函数参数,若在被调函数中改变了形参
的值,对实参没有影响;
数组的值,则主调函数中相应实参数组的值也被改变。
例4:使用选择法对10个数从小到大进行排序。
分析:
使用数组 int a[10]; 思路
先选择第一个位置上的数为“擂主”,与其他位置上 的9个数一一比较,将最小数放到第1个位置上;
然后再在剩余9个数中,找出 …… 此处隐藏:1183字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:汽车安全结构与碰撞论文