重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第14讲 二维数组、二维数组做函数参数

第14讲 维数组 二维数组做函数参数
第14讲 二维数组 二维数组做函数参数

练习 为什么? 删除字符串中的某一字符x。 因为当前的字 void Delete(char a. char x)符已经是后边 int i. 挪过来的,所 for(i=0:@q[i]=o;i++) 以要再判断 下a[是不是x [if(a[i]==x) 氐for(j=:[]=”小+ la[j] alj
2 练习 ▪ 删除字符串中的某一字符x。 void Delete(char a[], char x) { 判断a串中每一个字符是不是x, 是的话删除。 } int i; for(i=0;a[i]!=‘\0’;i++) {if(a[i]==x) 删除a[i](从a[i]开始的每一个字符 向前挪动一个位置); } {for(j=i; a[j]!=‘\0’;j++) {a[j]= a[j+1]; } i--; } •为什么? •因为当前的字 符已经是后边 挪过来的,所 以要再判断一 下a[i]是不是x

练习答案 include 为什么? void maino 吸收掉前一次 int i, I 输入后的结束符 char a[20],ch 回车 printf("Input a strin J. gets(a: getchar o r printf Input a character to delete: ) ch=getchar: Delete(a, ch: printf after deleting: %s\n,a)
3 练习答案 #include void main() { int i,l; char a[20],ch; printf("Input a string: "); gets(a); getchar(); printf("Input a character to delete: "); ch=getchar(); Delete(a,ch); printf(“after deleting:%s\n”,a); } •为什么? •吸收掉前一次 输入后的结束符 “回车”

/函数功能:删除从地址a开始的字符 串中的某一字符x*/ void Delete( char a, char x) 或者 int i for(i=0; *(a+i) #include [if((a+i== void maino (for(j=: tint j char a[20],ch, *p=a; printf("Input a string: ) gets(a) getchar(; printf("Input a character to delete: ch=getchar(; Delete(p, ch): o printfcafter deleting%s\n"a);
4 或者 /*函数功能:删除从地址a开始的字符 串中的某一字符x */ void Delete(char *a, char x) { int i; for(i=0;*(a+i)!=‘\0’;i++) {if(*(a+i)==x) /*找到x,删除*/ {for(j=i; *(a+j)!=‘\0’;j++) {*(a+j) = *(a+j+1); } i--; } } } #include void main() { int i,l; char a[20],ch, *p=a; printf("Input a string: "); gets(a); getchar(); printf("Input a character to delete: "); ch=getchar(); Delete(p,ch); printf(“after deleting:%s\n”,a); }

/函数功能:将从地址a开始的字符串中除了字 符x以外,全部写到b数组中* void Delete(char a, char x, char b) int I,J 再或者 for(i=0,j=0 * #include ⌒只要不是 void maind0 if((a+i)l=X I int i, char a[20], b[20], ch, *p=a printf("Input a string: ) 1 gets(a) j++:/复 getchar printf("Input a character to delete: ch=getchar(; b+j)=0:/ Delete(p, ch, b) o printf"after deleting%s\n"b);
5 再或者 /*函数功能:将从地址a开始的字符串中除了字 符x以外,全部写到b数组中 */ void Delete(char *a, char x,char *b) { int i,j; for(i=0,j=0;*(a+i)!=‘\0’;i++) { /*只要不是x,就复制过去*/ if(*(a+i)!=x) { *(b+j)=*(a+i); j++;/*复制一个字符,下标加一次*/ } } *(b+j)=‘\0’; /*末尾加上\0*/ } #include void main() { int i,l; char a[20],b[20],ch,*p=a; printf("Input a string: "); gets(a); getchar(); printf("Input a character to delete: "); ch=getchar(); Delete(p,ch,b); printf(“after deleting:%s\n”,b); }

读程序:函数功能? void SQUEEZE( char *s, char x) t int i for(i=0j=0:*(s+)!="\o:i++) 盱f((s+l)=x) (+)=(s+) 答:在指针s指向的字符串中 删除某一字符ch。 (+)=\o:分析:将删除ch后的数组仍 然写在原数组中
6 读程序:函数功能? void SQUEEZE(char *s, char x) { int i,j; for(i=0,j=0; *(s+i)!='\0'; i++) { if(*(s+i)!=x) { *(s+j) = *(s+i); j++; } } *(s+j) =‘\0’; } 答:在指针s指向的字符串中 删除某一字符ch。 分析:将删除ch后的数组仍 然写在原数组中

例6-29:求矩阵a的转置a a=123 a'=(14 456 25 36 算法: 定义变量存储矩阵的元素 输入矩阵a中所有元素 求矩阵a的转置a 输出矩阵a
7 例6-29:求矩阵a的转置a’ a= 1 2 3 a’= 1 4 4 5 6 2 5 3 6 ▪ 算法: ▪ 定义变量存储矩阵的元素 ▪ 输入矩阵a中所有元素 ▪ 求矩阵a的转置a’ ▪ 输出矩阵a’

1、定义变量 定义一个数组用于存储2行3列的矩阵 inta[2][3] 语法:数据类型数组名行数列数 a为2×3(2行3列)的数组,注意下标范围 a【0]-a[01[o1a[o][11a[o1[2 a[1]-a[1][o]a[1][1]a[1][2 列
8 1、定义变量 ▪ /*定义一个数组用于存储2行3列的矩阵*/ ▪ int a[2][3]; ▪ 语法:数据类型 数组名[行数][列数] a为2×3(2行3列)的数组,注意下标范围 a[0]---- a[1]---- a a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 行 列

维数组的内存分配: 按行存放(先行后列) 合法的初始化形式: na[23]={123}567 [O]o] nta[2]3]123567a[o]|ao1 nta[2]3]={1}{5 na]3]={123,5,6乃 a[o[2] inta[j[3]={1}{5 a[1][o] /列长度是必须指定出来的,a[1] 为什么?* a[1][1] a[1][2]
9 二维数组的内存分配: 按行存放(先行后列) a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] a[0] a[1] a 合法的初始化形式: int a[2][3]={{1,2,3},{5,6,7}} int a[2][3]={1,2,3,5,6,7} int a[2][3]={{1},{5}} int a[ ][3]={1,2,3,5,6,7} int a[ ][3]={{1},{5}} /*列长度是必须指定出来的, 为什么?*/

输入数组元素 要输入每一个a[[/ for(i=0:i<2:i++)/行下标从0到1* for(=j3:j*+)/列下标从0到2 scanfC %d", &a[i]iD: 10
10 输入数组元素 /*要输入每一个a[i][j]*/ for (i=0;i<2;i++) /*行下标从0到1*/ for(j=0;j<3;j++) /*列下标从0到2 */ scanf(“%d”,&a[i][j]);
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第13讲 指针与一维数组.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)习题7.ppt
- 重庆邮电大学:《C语言程序设计》课程作业讲评-goldbahe猜想.doc
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第11讲 数组与指针.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第10讲 一维数组与字符数组.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第七章 符号计算.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第六章 数值计算_matlab8.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第五章 M文件(主讲:卢丹).ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第四章 数据和函数的可视化.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第三章 字符串数组、元胞数组和构架数组.ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第二章 数值数组及其运算(2/2).ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第二章 数值数组及其运算(1/2).ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第一章 MATLAB基础准备及入门(2/2).ppt
- 中国民航大学电子信息工程学院:《MATLAB程序设计与应用》课程教学资源(PPT课件讲稿)第一章 MATLAB基础准备及入门(1/2).ppt
- 人民邮电出版社:《3ds max 7.0案例教程》第9章 灯光与摄像机.ppt
- 人民邮电出版社:《3ds max 7.0案例教程》第8章 材质的编辑和使用.ppt
- 人民邮电出版社:《3ds max 7.0案例教程》第7章 面片与NURBS建模.ppt
- 人民邮电出版社:《3ds max 7.0案例教程》第6章 合成建棋.ppt
- 人民邮电出版社:《3ds max 7.0案例教程》第5章 材质编辑器与贴图通道.ppt
- 人民邮电出版社:《3ds max 7.0案例教程》第4章 用二维型建模.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第15讲 二维数组与指针.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第16讲 动态内存分配&结构体.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第17讲 共用体&链表.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第18讲 文件.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第1讲 简介与hello world.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第20讲 位运算讲、位段、枚举变量、大型程序开发.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第2讲 简单C程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第3讲 多函数程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第4讲 作用域和选择结构程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第5讲 多分支和循环.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第6讲 循环和综合程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第7讲 综合程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第8讲 模块化程序设计.ppt
- 重庆邮电大学:《C语言程序设计》课程PPT教学课件(讲稿)第9讲 存储类型 宏定义 数组.ppt
- 重庆邮电大学:《C语言程序设计》课程授课计划一.doc
- 重庆邮电大学:《C语言程序设计》课程授课计划二.doc
- 湖南农业大学:《计算机组成原理教案》第二章 数据格式(蒋邵平).ppt
- 湖南农业大学:《计算机组成原理教案》第六章 总线的基本概念(蒋邵平).ppt
- 湖南农业大学:《计算机组成原理教案》第七章 显示器(蒋邵平).ppt
- 湖南农业大学:《计算机组成原理教案》第三章 存储系统(蒋邵平).ppt