资源描述:
《实验七--多维数组的使用.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《C程序设计》实验实验七__多维数组的使用实验目的:(1)掌握二维数组的定义方法、初始化赋值和元素引用;(2)二维数组元素的输入/输出、求最值、均值问题的编程方法;实验环境:TurboCforWindows集成实验与学习环境6.11实验要求任务:1.结合实验所给内容,自行设计实验步骤,认真完成实验。2.总结实验过程,编写提交实验报告:方案、编程、调试、结果、分析、结论。a11a12…a1na21a22…a2nA=…………am1am2…amn实验内容:二维数组是一个m行n列矩阵。即:1、二维数组的定义与初始化赋值:(1)定义格式:<类型><
2、数组名>[][];其中:m、n为常量表达式,m=数组行数,n=数组列数。例如:inta[3][4];表示定义了一个3行4列共12个元素的二维整型数组a,数组中各元素分别为:a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]可以把二维数组看作为一种特殊的一维数组,即它的每一个元素又是一个一维数组。(2)二维数组的初始化赋值二维数组初始化赋值的方法有:①所有元素赋初值给数组的所有元素赋初值的方法有两种:方法一:{{
3、0行初值},{1行初值},…,{m行初值}}即每行一个花括号,花括号间用逗号分隔,全部初值再用一个花括号。例如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};方法二:{0行初值,1行初值,…,m行初值}所有初值放在一个花括号中,按数组排列的顺序给各元素赋初值。例如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};注意:若对所有元素都赋初值,则定义数组时行数可不指定,而列数必须指定。例如:inta[][4]={{1,2,3,4},{5,6,7,8},{9,10,1
4、1,12}};或:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};②部分元素赋初值{{0行部分初值},{1行部分初值},…,{m行部分初值}}例如:经济信息管理及计算机应用系《C程序设计》实验inta[3][4]={{1,2},{5},{9,10,11}};表示二维数组a的元素a[0][0]、a[0][1]、a[1][0]、a[2][0]、a[2][1]、a[2][2]赋了初值。图二维数组的存储方式a[0][0]1a[0][1]2a[0][2]3a[0][3]4a[1][0]5a[1][1]6a[1][2]7
5、a[1][3]8a[2][0]9a[2][1]10a[2][2]11a[2][3]122、二维数组存储方式按行存放二维数组各数组元素。即先存第一行元素,再存第二行元素,依次把各行元素存入一串连续的存储单元中。例如上节中所定义的a数组存储在内存中时各数组元素的排列顺序如图所示。3、二维数组元素的引用<数组名>[<下标表达式1>][<下标表达式2>]下标表达式1=元素行号,下标表达式2=元素列号(行号与列号必须为整型)。【例1】通过键盘给一个3行4列的二维数组输入整型数值,并按表格形式输出此数组的所有元素。程序如下:main(){inta[3
6、][4],i,j;printf("Inputtwelveintegers:");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf(“%d”,&a[i][j]);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%5d”,a[i][j]);printf(“”);}}程序执行后提示:Inputtwelveintegers:123456789101112123456789101112思考题:输入两个二维数组A、B,数据处理为C=A+B,最后输出数组C。如何编程?【例1】将一个二维数组
7、的行和列元素互换,形成另一个二维数组,即数组的转置运算。例如:a数组b数组1 2341595 6782610910111237114 812经济信息管理及计算机应用系《C程序设计》实验分析:将a数组转换成b数组,只要将其每个数组元素的两个下标交换即可,即b[j][i]=a[i][j]。程序如下:main(){inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};intb[4][3];inti,j;printf("Arraya:");for(i=0;i<3;
8、i++)/*输出a数组*/{for(j=0;j<4;j++)printf(“%5d”,a[i][j]);printf(“”);}for(i=0;i<3;i++)/*将a数组转置成b数组*/