




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二维数组一、定义在逻辑上可以把二维数组看成一个具有行和列的矩阵。 1 2 3 4 5 6 7 8 9定义格式:类型名 数组名整型常量1整型常量2, . ;例: int a33;说明:1、定义了一个数组名为a的二维数组;2、二维数组a中每个元素都是int;3、二维数组a中有3*3个元素;4、二维数组a可以看成是一个具有3行3列的矩阵。 第0列 第1列 第2列第0行 a00 a01 a02第1行 a10 a11 a12第2行 a20 a21 a22二维数组中每个元素有两个下标,第一个方括号中的下标代表行号,称行下标;第二个方括号中的下标代表列号,称列下标。行下标和列下标都是从0开始。二维数组在内存中也是占用连续的存储单元。如图所示:a00 a01 a02 a10 a11 a12 a20 a21 a22说明:1、在C语言中,可以把二维数组看成一个一维数组,每个数组元素又是一个一维数组。2、二维数组名同样存放的是地址常量,代表该数组的首地址,即第一个数组元素的地址。二、二维数组元素引用数组名下标表达式1 下标表达式2double w42;w01、wij、wi+kj+k 都是合法的数组元素引用形式三、二维数组的初始化int a33=1,2,3,4,5,6,7,8,9;int a33=1,2,3,4;例1:通过键盘给2*3的二维数组输入数据,第一行赋1、2、3,第二行赋10、20、30,然后按行输出此二维数组。#include main() int a23,i,j; /*输入数据*/ for(i=0;i2;i+) for(j=0;j3;i+) scanf(“%d”,&aij);/*输出数据*/for(i=0;i2;i+) for(j=0;j3;i+) printf(“%d ”,&aij); printf(“n”);四、二维数组名作为实参时实参和形参之间的数据传递当二维数组名作为实参时,对应的形参是一个行指针变量。行指针:int (*prt)2; int a33;prt=a; a0 a1 a2a00 a01 a02 a10 a11 a12 a20 a21 a22prtprt+; /*行指针prt每次移动为一行*/int x10,*p; p=x; xx0 x1 x2 x3 x4 x5 x6 x7 x8 x9p p+; /*指针p每次移动为一个单元*/五、程序举例1、二维数组的输入输出#define M 6#define N 5int aMN;输入: for(i=0;iM;i+)for(j=0;iN;j+) aij=rand()%50;输出: for(i=0;iM;i+)for(j=0;iN;j+) printf(“%d ”aij);2、计算方阵每行的和值、平均值、最大值、最小值。#include #define M 5int sMM =23,87,10,44,11, 91,66,24,5,51,31,2,19,91,28,65,10,9,6,39,22,35,49,82,76;int xM=0;void jisuan() int i,j; for(i=0;iM;i+) sum=0;for(j=0;jM;j+) sum=sum+sij;xi=sum;main() int i;jisuan();for(i=0;iM;i+) printf(“%d ”xi);字符串“Hello!”字符串常量在内存中占用一串连续的存储空间。不同的字符串具有不同的起始地址。在C语言中,字符串常量被隐含处理成一个以0结尾的无名字符型一维数组。一、字符数组、字符串(1)char str10=s,t,r,i,n,g,! ;str:string!000str0 str1 str2 str3 str4str5 str6str7 str8 str9(2)char ss10=“string!”;ss:string!000ss0 ss1 ss2 ss3 ss4 ss5 ss6 ss7 ss8 ss9(3)char ss=“string!”;ss:string!0ss0 ss1 ss2 ss3 ss4 ss5 ss6 ss7 (4)char ss=“string!”,*p; p=ss;ss:string!0ss0 ss1 ss2 ss3 ss4 ss5 ss6 ss7 p(5)char *p=“string!”;string!0p二、字符串的输入和输出1、scanf()和printf()实现字符串的整体输入和输出(1)scanf(“%s”,输入项);说明:输入项可以是字符数组名,字符数组元素地址,也可以是字符指针变量。例:char str15; scanf(“%s”,str);注意:用%s格式符输入 时,空格和回车符都作为输入数据的分隔符而不能被读入。(2)printf(“%s”,输出项);说明:输入项可以是字符串常量、字符数组名,也可以是指向字符串的字符指针变量。2、gets()和puts()(1)gets()函数:输入一行字符串格式:gets(str_adr);说明:str_adr可以是字符数组名、字符数组元素地址或字符指针变量。作用:从终端设备(键盘)读入字符串(包括空格),直到读入一个换行符为止。换行符读入后,不作为字符串的内容,系统自动用0代替。例:char str20; gets(str);(2)puts()函数:输出一行字符串格式:puts(str_adr);说明:str_adr可以是字符数组名、字符数组元素地址或字符指针变量。作用:从终端设备(屏幕)输出字符串(包括空格),直到第一个0即结束输出。三、字符串数组定义:字符串数组就是数组中的每个元素又都是一个字符串。char name1080;说明:字符串数组的第一个下标决定字符串的个数,第二个小标决定字符串的最大长度。char ca35=“a”,“bb”,“ccc”;ca00ca0a0ca1bb0ca2ccc0四、字符串处理函数char *s1,*s2,*s,ch;strcat(s1,s2):把字符串s2连接到s1后面,返回s1所指地址。strcmp(s1,s2):对s1和s2所指字符串进行比较(区分大小写)。s1s2, 返回正数。char *s1,*s2;s1=”strstringstr”;s2=”int”strcmp(s1,s2);stricmp(s1,s2):对s1和s2所指字符串进行比较(不区分大小写)。s1s2, 返回正数。strcpy(s1,s2):把s2指向的字符串复制到s1指向的空间,返回s1所指地址。strlen(s):求s所指字符串的长度。返回字符串中字符的个数。strchr(s,ch):在s所指字符串中找出第一次出现字符ch的位置。返回找到的字符的地址,找不到返回NULL。char *p=”string”,ch;ch=n;strchr(p,ch);strstr(s1,s2):在s1所指字符串中找出字符串s2第一次出现的位置。返回找到的字符串的地址,找不到返回NULL。char *s1,*s2;s1=”strstringstr”;s2=”str”strstr(s1,s2);其他函数(讲解习题时再介绍):如:memset();memcpy();atoi();五、程序举例字符串是否结束的判断方式1、一维数组char ss=“string!”,*p;p=ss;ss:string!0ss0 ss1 ss2 ss3 ss4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年乡村医生考试题库:农村常见传染病防治传染病预防知识试题
- 2025年短剧行业营销分析报告:智AI伴飞
- 南宁市新提拔领导干部任前法律知识培训模拟试题三
- 南安市中考二模考试语文试题(图片版无答案)
- 2025年安全生产网络知识竞赛题库及答案(90题)
- 2025年上海杨浦邮政发布岗位招聘考试笔试试题(含答案)
- 按揭购房合同书含贷款税费装修产权过户售后服务
- 公共停车场车位划线及停车服务合同
- 出差人员隐私保护与信息安全合同
- 个性化储藏室使用权转让合同
- 2025年四川省成都市新都区特需人才引进34人历年高频重点模拟试卷提升(共500题附带答案详解)
- 和合文化与国际传播
- 煤矿急救知识培训课件
- 梅毒课件完整版本
- 中国文化概论知识试题与答案版
- 《改善思维转变观念》课件
- 《中国胃食管反流病诊疗规范》(2023版)解读课件
- 高中语文 小说阅读理解题及答案
- 课题2 化学方程式第2课时 教学设计 九年级化学上册(人教版2024)
- 骨科患者便秘的护理
- 汇川技术的在线测评
评论
0/150
提交评论