C-C++语言程序设计基础72课件_第1页
C-C++语言程序设计基础72课件_第2页
C-C++语言程序设计基础72课件_第3页
C-C++语言程序设计基础72课件_第4页
C-C++语言程序设计基础72课件_第5页
已阅读5页,还剩16页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 7.2 二 维 数 组7.2.1、二维数组的定义和引用 1.二维数组定义:类型标识符 数组名常量表达式1常量表达式2; 二维数组可看作一个二维表格或矩阵。int a23;定义了一个23的数组a,可存放6个整型数据。 7.2 二 维 2.二维数组元素的引用: 二维数组元素引用必须带有两个下标,一般形式: 数组名下标表达式1下标表达式2注意:下标表达式可以是整型常量、整型变量及其表达式。例如,对数组 int a23;其6 个元素是:a00, a01, a02, a10, a11, a12 2.二维数组元素的引用: 1.如果从表格角度来理解,则数组元素引用形式为 数组名行号列号a00a01a02a

2、10a11a12(0)行(1)行(0)列(1)列(2)列2.如果从矩阵角度来理解,则2*3矩阵为: a00 a01 a02 a= a10 a11 a12 则2*3矩阵可以用数组 a23来表示 1.如果从表格角度来理解,则数组元素引用形式为a00 二维数组的顺序存储结构(按行存放): int a23;a00 a01a02a10a11a12第行第行 a 代表整个二维数组的首地址等价:&a00 二维数组的顺序存储结构(按行存放):a00 第第5/505二维数组示例1(7.5):请写出下列程序运行结果。#include main() int i,j,a23; for(i=0;i2;i+)for(j=0

3、;j3;j+)aij=i+j;for(i=0;i2;i+) for(j=0;j2 !117以下能对二维数组a进行正确初始化的语句是( )。 Aint a14 = 1,2,3,4,5; Bfloat a3 = 1,2,2,3,3,1; Clong a23 = 1,1,2,1,2,3,0,0; Ddouble a 3 = 8;二维数组练习一:CDD15以下对二维数组a的正确说明是( )。二维数 二维数组应用实例讲解10/5010 二维数组应用实例讲解10/5010n*n 矩阵 j i 1 2 3 4 10 1 2 3 10 10 1 2 10 10 10 1矩阵常用运算。 1.转置;aij与aji

4、。 2.行或列互换及移位; 3.加、减、乘、除及对角线求和;主对角线:i=j次对角线 i+j=n-1上三角:ij (红色)二维数组ann常用来表示n*n 矩阵n*n 矩阵矩阵常用运算。主对角线:i=j次对角线 i+ 二维数组示例2:求矩阵的转置矩阵。1 231474 562587 89369从上可知,方法1:转置矩阵是将原矩阵元素按行列互换形成的。1 2 34 5 67 8 9123456789 二维数组示例2:求矩阵的转置矩阵。1 2 3 方法1之程序:#include main()int i,j; int a33=1,2,3,4,5,6,7,8,9,b33; for (i=0;i3;i+)

5、for(j=0;j3;j+) bji=aij; for(i=0;i3;i+)for(j=0;j3;j+)printf(%6d,bij); printf(n); 方法1之程序: 二维数组示例2:求矩阵的转置矩阵。1 231474 562587 89369方法2:沿主对角线将对称位置互换元素即可。这时可将转置矩阵放在原数组中。1 231474 562587 89369方法2之程序留给同学们完成! 二维数组示例2:求矩阵的转置矩阵。方法2之程序留给同学们完 2 3 49 8 7 6-10 10 -5 2 a=15 二维数组示例3(7.7): 有一个34的矩阵,要求编程求出其中最大元素值及其行列号。

6、2 3 4a=15 二维数16#include main() int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; int i,j,row=0,colum=0,max; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%dn,max,row,colum);16#include 171 1 1 1 2 1 1 3 3 1 1 4 6 4 1 二维数组示例4:输入任意行数n,输出下列格式的杨辉三角形前n行。1.可以看成5*5的矩阵;2.矩阵第0列

7、和主对角线值为1;3. aij=ai-1j-1+ai-1j;171 1 1 1 18#includemain()int a1010,i,j,n,k;scanf(%d,&n);for(i=0;in;i+) for(j=0;j=i;j+) if(i=j)|(j=0) aij=1;else aij=ai-1j-1+ai-1j; printf(%6d,aij); printf(n);18#include191下面程序的输出结果是 。#include main() int a33=0,0,0,1,1,1, 2,2,2,i,j,s=1; for(i=0;i3;i+) for(j=0;j=i;j+) s+=

8、a2ajj; printf(%dn,s);二维数组练习二: 0 0 0 i=0 s=s+a20=3 1 1 1 i=1 s=3+a20+a21=7 2 2 2 i=2 s=7+a20+a21+a22=1313191下面程序的输出结果是 。二维数组练20/50202:完成下面的程序,此程序是求出数组a的两条对角线上的元素之和。#include main( )int a33=2,3,4,8,3,2,7,9,8; int sum1=0,sum2=0,i,j; for(i=0;i3;i+ ) for(j=0;j3;j+) _; for(i=0;i=0;j-或j=0;j3;j+i+j=220/50202:完成下面的程序,此程序是求出数组a的两条对21/5021例:一个三维数组的赋值与输出程序如下:#includemain()int i,j,k,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论