内容正文:
江苏省XY中等专业学校2022-2023-1教案 编号:
专业名称
计算机应用
课程名称
C语言
所在
年级
三年级
主备
教师
授课教师
授课系部
授课班级
授课
日期
课题
二维数组初始化
教学
目标
1、理解和运用二维数组存储数据
2、掌握二维数组的定义和初始化
3、用二重循环访问二维数组
重点
二维数组的概念、初始化的各种情况
难点
用双重循环访问二维数组
教法
讲授法、案例教学法、讨论法
教学设备
黑板 计算机 网络机房
教学
环节
教学活动内容及组织过程
个案补充
教
学
内
容
一、导入:
已经学习了一维数组的初始化,本节结合一维来看二维数组如何初始化
二、讲授:
二维数组元素的初始化
(1)分行给二维数组元素赋以初值;
例:static int a[2][3]={{0,1,2},{3,4,5}};
(2)可以将所有数据写在一个括号内,按数组排列的顺序对各个元素赋初值;(不提倡,易漏不易查)
(3)可以对部分元素赋初值;
(4)如在对全部数组元素赋初值时,则定义数组时对第一维的长度可以不指定,但第二维的数组长度不能省。
如:static int b[10][2];
(
1
2
3
4
5
0
0
0
0
0
0
0
0
0
0
)
/*按顺序赋值,对部分元素赋值,并省略第一维长度 */
如:int a[][5]={1,2,3,4,5,6,7,8,9,10,11};
这时设有n个初值数据,数组的第二维长度为n2,第一维的大小为n/n2+1.如11/5+1=3。
注意:
1、如果初值的数据个数比数组元素少,则系统自动给后面的元素补赋初值0。
2、如果初值的数据个数比数组元素多,则在编译时提示出错信息:
二维数组应用举例
编写程序:打印杨辉三角形(输出6行)
杨辉三角形满足以下规则:首行只有一个元素值为1;从第二行开始首末两元素都是1;中间的第k个元素等于上一行第k-1个元素与上一行第k个元素之和。如:
(
1
1
1
1
2
1
1
3
3
1
1
4
6
4
1
1
5
10
10
5
1
杨辉三角形
)
#include <stdio.h>
#define N 6
main( )
{
int k,j,a[N][N];
for (k=0;k<N;k++)
a[k][0]=a[k][k]=1;
for(k=2;k<N;k++)
for(j=1;j<k;j++)
a[k][j]=a[k-1][j-1]+a[k-1][ j];
for (k=0;k<N;k++)
{
for(j=0;j<k+1;j++)
printf(“%-5d”,a[k][j]);
printf(“
”);
}
}
例2:将一个二维数组的行和列互换,存到另一个数组中。
main( )
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf(“array a:
”);
for(i=0;i<=1;i++)
{for(j=0;j<=2;j++)
{printf(“%5d”,a[i][j]);
b[j][i]=a[i][j]; }
printf(“
”);}
printf(“array b:
”);
for(i=0;i<=2;i++)
{ for(j=0;j<=1;j++)
printf(“%5d”,b[i][j]);
printf(“
”);
}
}
板
书
设
计
二维数组初始化
1、 二维数组初始化
2、 应用举例
教 后 札 记
学科网(北京)股份有限公司
$