书签 分享 收藏 举报 版权申诉 / 40
上传文档赚钱

类型C语言第十二讲二维数组与字符数组解析课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5100802
  • 上传时间:2023-02-11
  • 格式:PPT
  • 页数:40
  • 大小:1.22MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言第十二讲二维数组与字符数组解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 第十二 二维 数组 字符 解析 课件
    资源描述:

    1、第十二讲 二维数组和字符数组主讲:谢华成主讲:谢华成C语言程序设计网络信息与计算中心教研室教教 学学 目目 的的C语言程序设计网络信息与计算中心教研室第一部分 二维数组v 二维数组的定义、引用、初始化v 二维数组的元素在内存中按什么方式存放?v 求二维数组中元素的最大值和最小值v 二维数组的变换v 一维数组中相关算法在二维数组中的实现C语言程序设计网络信息与计算中心教研室将将1个个3*2的矩阵存入的矩阵存入1个个3*2的二维数组的二维数组中,找出最大值以及它的行下标和列下标,并中,找出最大值以及它的行下标和列下标,并输出该矩阵。输出该矩阵。7.2 找出矩阵中最大值所在的位置找出矩阵中最大值所在

    2、的位置 7.2.1 程序解析7.2.2 二维数组的定义和引用7.2.3 二维数组的初始化7.2.4 使用二维数组编程7.2.1 程序解析程序解析求矩阵的最大值求矩阵的最大值【例 7-7】将1个3*2的矩阵存入1个3*2的二维数组中,找出最大值以及它的行下标和列下标,并输出该矩阵。row 记录最大值的行下标 col 最大值的列下标 arowcol 最大值例例7-7 源程序源程序main()int col,i,j,row;int a32;printf(“Enter 6 integers:n);for(i=0;i 3;i+)for(j=0;j 2;j+)scanf(%d,&aij);for(i=0;

    3、i 3;i+)for(j=0;j 2;j+)printf(%4d,aij);printf(n);row=col=0;for(i=0;i 3;i+)for(j=0;j arowcol)row=i;col=j;printf(max=a%d%d=%dn,row,col,arowcol);Enter 6 integers:3 2 10 -96 -13 2 10 -96 -1max=a10=10C语言程序设计网络信息与计算中心教研室二维数组二维数组多维数组的空间想象二维数组:一个表格或一个平面矩阵一维数组:一列长表或一个向量多维数组:多维空间的一个数据列阵三维数组:三维空间的一个方阵C语言程序设计网络信

    4、息与计算中心教研室7.2.2 二维数组的定义和引用二维数组的定义和引用1、定义类型名 数组名行长度列长度int a32;定义1个二维数组a,3行2列,6个元素int b510;定义1个二维数组a,5 行 10 列,50 个元素 C语言程序设计网络信息与计算中心教研室2、引用、引用先定义,后使用数组元素的引用:数组名行下标 列下标行下标和列下标:整型表达式行下标的取值范围是0,行长度-1列下标的取值范围是0,列长度-1int a32;3 行 2 列,6 个元素a00 a01 a10 a11 a20 a21 下标不要越界下标不要越界C语言程序设计网络信息与计算中心教研室二维数组在内存中的存放方式二

    5、维数组在内存中的存放方式int a32;3 行 2 列,6 个元素表示1个3行2列的矩阵a00 a01 a10 a11 a20 a21 二维数组的元素在内二维数组的元素在内存中按行存中按行/列方式存放列方式存放a00a01a10a11a20a21 C语言程序设计网络信息与计算中心教研室7.2.3 二维数组的初始化二维数组的初始化1、分行赋初值int a33=1,2,3,4,5,6,7,8,9;static int b43=1,2,3,4,5;数组数组a1 2 3 4 5 67 8 9数组数组b1 2 30 0 04 5 00 0 02、顺序赋初值int a33=1,2,3,4,5,6,7,8,

    6、9;static int b43=1,2,3,0,0,0,4,5;C语言程序设计网络信息与计算中心教研室省略行长度对全部元素都赋了初值,int a 3=1,2,3,4,5,6,7,8,9;或分行赋初值时,在初值表中列出了全部行static int b 3=1,2,3,4,5,建议不要省略数组数组a1 2 3 4 5 67 8 9数组b1 2 30 0 04 5 00 0 0C语言程序设计网络信息与计算中心教研室7.2.4 使用二维数组编程使用二维数组编程行下标和列下标分别做为循环变量,通过二重循环,遍历二维数组通常将行下标做为外循环的循环变量 列下标 内循环C语言程序设计网络信息与计算中心教研

    7、室定义1个 3*2 的二维数组a,数组元素的值由下式给出,按矩阵的形式输出a。aij=i+j(0i2,0j1)例例7-8 生成一个矩阵并输出生成一个矩阵并输出 int a32;a00 a01 a10 a11 a20 a21 0 11 22 3C语言程序设计网络信息与计算中心教研室#include int main(void)int i,j;int a32;for(i=0;i 3;i+)for(j=0;j 2;j+)aij=i+j;for(i=0;i 3;i+)for(j=0;j 2;j+)printf(%4d,aij);printf(n);return 0;a00 a01 a10 a11 a2

    8、0 a21 i=0 j=0i=0 j=1i=1 j=0i=1 j=1i=2 j=0i=2 j=1 例例7-8 源程序源程序0 11 22 3C语言程序设计网络信息与计算中心教研室矩阵与二维数组矩阵与二维数组int aNN;N是正整数aij:i、j的取值范围0,N-1用二维数组a表示N*N方阵时,对应关系:a00 a01 a02 主对角线 a10 a11 a12 上三角a20 a21 a22 下三角 付对角线i=ji=ji+j=N-1C语言程序设计网络信息与计算中心教研室例例7-9 方阵转置方阵转置 输入一个正整数输入一个正整数n(1n6),根据下式生成根据下式生成1个个n*n的方阵,的方阵,然

    9、后将该方阵转置(行列互换)后输出。然后将该方阵转置(行列互换)后输出。aij=i*n+j+1(0in-1,0jn-1)分析:int a66;n=3时1 2 34 5 67 8 91 4 7 2 5 83 6 9a01 a10 a02 a20a12 a21aij aji#include int main(void)int i,j,n,temp;int a66;printf(“Enter n:);scanf(%d,&n);/*给二维数组赋值 略*/*行列互换*/for(i=0;i n;i+)for(j=0;j n;j+)if(i=j)/*只遍历上三角阵只遍历上三角阵*/temp=aij;aij=a

    10、ji;aji=temp;/*按矩阵的形式输出a 略*/return 0;例例7-9 源程序源程序C语言程序设计网络信息与计算中心教研室 /*行列互换行列互换*/for(i=0;i n;i+)for(j=0;j n;j+)if(i=j)temp=aij;aij=aji;aji=temp;1 2 3 4 5 67 8 9主对角线:主对角线:i=j上三角:上三角:i =ji=01 4 7 2 5 63 8 9i=11 4 72 5 83 6 9例例7-9 说明说明for(j=i;j n;j+)C语言程序设计网络信息与计算中心教研室第二部分 字符数组1、字符数组的定义和使用2、字符数组的初始化3、字符

    11、串的输入和输出4、字符串处理函数5、程序举例C语言程序设计网络信息与计算中心教研室7.3.2 一维字符数组一维字符数组v字符串的存储和运算可以用一维字符数组实现v一维字符数组的定义、引用、初始化与其他类型的一维数组一样。char str80;定义一个含有80个字符型元素的数组str char t5=H,a,p,p,y;初始化数组 t t0 t1 t4t H a p p y输出数组输出数组 t 的所有元素的所有元素for(i=0;i 对字符数组的操作C语言程序设计网络信息与计算中心教研室1.字符串的存储数组初始化字符串的存储数组初始化字符串可以存放在一维字符数组中 static char s6=

    12、H,a,p,p,y,0;字符数组初始化:用字符串常量static char s6=Happy;static char s6=Happy;数组长度=字符串的有效长度+1 s0 s1 s5s H a p p y 0C语言程序设计网络信息与计算中心教研室字符串的存储字符串的存储auto char s80=Happy;字符串遇 0 结束第一个 0 前面的所有字符和 0 一起构成了字符串 Happy”0 之后的其他数组元素与该字符串无关 s0 s1 s5s H a p p y 0?字符串由有效字符和字符串结束符 0 组成 C语言程序设计网络信息与计算中心教研室2.对字符串的操作对字符串的操作v把字符串放

    13、入一维字符数组(存储)v对字符串的操作=对字符数组的操作普通字符数组:数组元素的个数是确定的,一般用下标控制循环字符串:没有显式地给出有效字符的个数,只规定在字符串结束符 0 之前的字符都是字符串的有效字符,一般用结束符 0 来控制循环循环条件:si!=0 C语言程序设计网络信息与计算中心教研室字符串处理函数字符串处理函数put stringget stringC语言程序设计网络信息与计算中心教研室字符串处理函数字符串处理函数C语言程序设计网络信息与计算中心教研室字符串处理函数字符串处理函数C语言程序设计网络信息与计算中心教研室字符串处理函数字符串处理函数C语言程序设计网络信息与计算中心教研室

    14、字符串处理函数字符串处理函数C语言程序设计网络信息与计算中心教研室for(i=0;si!=0;i+)putchar(si);for(i=0;i 80;i+)putchar(si);for(i=0;i len;i+)putchar(si);手工输出字符串手工输出字符串 s0 s1 s5s H a p p y 0?C语言程序设计网络信息与计算中心教研室输入一个以回车结束的字符串输入一个以回车结束的字符串(少于少于80个个字符字符),统计其中数字字符的个数。,统计其中数字字符的个数。分析:数组长度取上限80以 n 做为输入结束符例例7-13 统计字符统计字符#include int main(voi

    15、d)int count,i;char str80;printf(“Enter a string:);i=0;while(stri=getchar()!=n)i+;stri=0;/*输入结束符字符串结束符*/count=0;for(i=0;stri!=0;i+)if(stri=0)count+;printf(count=%dn,count);return 0;例例7-13 源程序源程序字符串的输入字符串的输入Enter a string:Its 512?count=3如何改变输入结束符如何改变输入结束符?能省略能省略stristri=0=0吗?吗?0 1 2 3 4 5 6 7 8sI t s

    16、5 1 2 0?例例7-14 进制转换进制转换#include int main(void)int i,n;char s10;printf(“Enter a string:);i=0;while(si=getchar()!=n)i+;si=0;n=0;/*将字符串转换为整数*/for(i=0;si!=0;i+)if(si=0)n=n*10+(si-0);else break;printf(digit=%dn,n);return 0;Enter a string:123digit=1230 1 2 3 s1 2 3 0?进制转换方法进制转换方法 n=0;for(i=0;si!=0;i+)if(s

    17、i=0)n=n*10+(si-0);else break;0 1 2 3 s1 2 3 0?i si si-0 n=n*10+(si-0)0 1 1 0*10+1=1 1 2 2 1*10+2 =122 3 3 12*10+3 =1233 0Enter a string:1#2#3digit=C语言程序设计网络信息与计算中心教研室程序举例程序举例C语言程序设计网络信息与计算中心教研室字符串小结字符串小结字符串:一个特殊的一维字符数组 0v把字符串放入一维字符数组(存储)数组长度足够 字符数组初始化:static char s80=Happy;赋值:s0=a;s1=0;输入:输入结束符=字符串结束符0 i=0;while(si=getchar()!=n)i+;si=0;s0 s1 s5sH a p p y 0?C语言程序设计网络信息与计算中心教研室v把字符串放入一维字符数组(存储)v对字符串的操作=对字符数组的操作只针对字符串的有效字符和字符串结束符 0 检测for(i=0;si!=0;i+)putchar(si);s0 s1 s5sH a p p y 0?

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言第十二讲二维数组与字符数组解析课件.ppt
    链接地址:https://www.163wenku.com/p-5100802.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库