《程序设计基础教案222课时——二维数组.docx》由会员分享,可在线阅读,更多相关《程序设计基础教案222课时——二维数组.docx(5页珍藏版)》请在第一文库网上搜索。
1、教案序号22周次16授课形式新授授课章节名称二维数组教学目的掌握二维数组教学重点二维数组引用教学难点二维数组引用使用教具机房课外作业课后体会授课主要内容1.1 5.4二维数组1.1.1 二维数组的定义和引用1 .定义格式:类型标识符数组名常量表达式1常量表达式21;例如:inta34;charstr23;定义a为3X4(3行4列)的整型二维数组,str为2X3(2行3列)的字符型二维数组。为了便于理解,可将二维数组视为行列式或矩阵,第一个下标为行号,第二个下标为列号,行号与列号都从O开始。二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。例如,str2
2、3各元素排列的顺序是:strOOstrO1Strstr1Ostr11str1从上可看出,可以把二维数组看作是一个特殊的一维数组:它的元素又是一个一维数组,即Str数组是含有strOStr1这两个元素的一维数组,而strOstr1又可看成是各含三个元素的一维数组。上面定义的二维数组可以理解成元素为3个的2个一维数组,其一维数组名为strO和str12.引用格式:如a23凡是对基本数据类型的变量所能进行的各种操作,也都适合于同类型的二维数组元素。例如:a23=a1*4+a0/2;注意:从键盘上为二维数组元素输入数据,一般需要使用双重循环。例如:ita23,i,j;for(i=0;i2;i+)for
3、(j=0;j3;j+)scanf(%daij);5.4.2二维数组的初始化具体方法有下列几种:(1)分行给二维数组赋初值。如:inta23=1,2,3),4,5,6;语句中第一对花括号内的各数据依次赋给第一行中的各元素,第二对花括号内的各数据依次赋给第二行中的各元素,即依行赋值。(2)将所有元素的初值写在一对花括号内,按数组排列顺序对各元素赋初值。如:inta23=1,2,3A5,6);(3)对部分元素赋初值。如:inta23=(1,4;它的作用是对各行第1列的元素赋初值,其余元素值自动取0,赋初值后数组各元素为:100400也可以对各行中的某一元素赋初值:inta23=0J,0,2;初始化后
4、的数组元素为:0100205.4.3二维数组应用举例例5.12从键盘输入一个班学生的姓名,要求将姓名保存在一个二维数组中,再将每个人的姓名从显示器输出。设一个班有N个学生,每个学生的姓名长度不超过M个字符。#inc1ude#defineN5#defineM25intmain()(charstr1NM;inti;for(i=0;iN;i+)(scanf(%s,str1i);for(i=0;iN;i+)(printf(%sn,str1i);return0;例5.13将一个二维数组行和列元素值互换,存到另一个二维数组中。-2135a=34b=56246主要功能:二维数组的行列互换#inc1udein
5、tmain()(inta32=1,23A5,6;intb23;intij;PrimfC数组a:n);for(i=0;i=2;i+)(forO=OJv=IJ+)(printf(%d,aij);b1jiJ=aiJUJ;printf(nu);Printf(数组b:n);for(i=0;i=1;i+)(for(j=0=2J+)printf(%do,bij);printf(n);return0;)运行结果为:数组a:123456数组b:1 352 46例5.14有4个字符串(每个字符串长度不超过20),要求找出其中最大者。可以设一个二维的字符数组str,大小为4X20,即有4行20列,每一行可以容纳20
6、个字符。如前所述,可以把Str,str1,str,str3看作4个一维字符数组,它们各有20个元素。可以把它们如同一维数组那样进行处理。首先用SCanf分别读入4个字符串。然后用for循环求得最大的字符串,把它放在一维字符数组String中,最后用Printf输出最大的字符串。#inc1ude#inc1udeintmain()inti;charstr420;charstring20;for(i=0;i4;i+)scanf(%s,stri);输入4个字符串strcpy(string,strO);使string的值为strO的值for(i=0;iO)如果str1istringstrcpy(string,stri);将stri中的字符串复制到Stringprintf(,nThe1argeststringis%sn,string);return0;)运行情况如下:abcdeXVZ/12345/qwerThe1argeststringis:xyz