手机版

铁岭市中考满分作文-第5章 数组(2)

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

铁岭市中考满分作文-第5章 数组(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)