版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章
数组批量处理数据01一维数组02二维数组03字符数组04数组应用02一维数组01035.1.1一维数组的定义和使用5.1.15.1.204定义一维数组的一般形式为:类型符
数组名[常量表达式];数组名的命名规则和变量名相同,如:inta[10];a[0]a[1]a[2]a[3]…a[7]a[8]a[9]55在定义数组并对其中各元素赋值后,就可以引用数组中的元素注意:只能引用数组元素而不能一次整体调用整个数组全部元素的值引用数组元素的表示形式为:数组名[下标]如a[0]=a[5]+a[7]-a[2*3]合法intn=5,a[10];a[n]=20;合法5.1.1一维数组的定义和使用5.1.15.1.266
例6.1对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。解题思路:1.定义一个长度为10的数组,数组定义为整型2.要赋的值是从0到9,可以用循环来赋值3.用循环按下标从大到小输出这10个元素5.1.1一维数组的定义和使用5.1.15.1.277#include<stdio.h>intmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d",a[i]);printf("\n");return0;}0123456789a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]结果:5.1.1一维数组的定义和使用5.1.15.1.25.1.2一维数组的初始化08方法说明实例1在定义数组时对全部数组元素赋值inta[3]={1,2,3}2可以只给数组中的一部分元素赋值inta[10]={1,2,3}3如果想使一个数组中的值全部为零,则全部赋值为0inta[3]={0,0,0}4在对全部数组元素进行赋值时,由于数据的个数已经确定因此可以不指定数组长度inta[3]=(1,2,3)inta[]={1,2,3}5.25.1.299
例6.2用数组处理求Fibonacci数列问题解题思路:1.例5.8中用简单变量处理的,缺点不能在内存中保存这些数。假如想直接输出数列中第25个数,是很困难的。2.如果用数组处理,每一个数组元素代表数列中的一个数,依次求出各数并存放在相应的数组元素中5.1.2一维数组的初始化5.25.1.210#include<stdio.h>intmain(){inti;intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0)printf(“\n”);printf(“%12d”,f[i]);}printf("\n");return0;}5.1.2一维数组的初始化5.25.1.211结果:总结:1.一维数组是数组中最简单的,它的元素只需要用数组名加一个下标,就能唯一确定。2.一维数组的命名规则与变量名命名规则相同,遵循标识符命名规则5.1.2一维数组的初始化5.25.1.2二维数组0212
5.2.1二维数组的定义和使用5.2.15.2.213245618471243160023462757304520181725202024581436142711751046197614772018队员1队员2队员3队员4队员5队员6floatpay[3][6];1分队2分队3分队141.二维数组定义的一般形式为
类型符数组名[常量表达式][常量表达式];如:floata[3][4],b[5][10];2.二维数组可被看作是一种特殊的一维数组:
它的元素又是一个一维数组3.例如,把a看作是一个一维数组,它有3个元素:a[0]、a[1]、a[2]4.每个元素又是一个包含4个元素的一维数组
5.2.1二维数组的定义和使用5.2.15.2.215a[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]a[0]a[1]a[2]逻辑存储
5.2.1二维数组的定义和使用5.2.15.2.216二维数组元素的表示形式为:
数组名[下标][下标]
1.b[1][2]=a[2][3]/2合法2.for(i=0;i<m;i++)printf(“%d,%d\n”,a[i][0],a[0][i]);合法
5.2.1二维数组的定义和使用5.2.15.2.217inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};inta[3][4]={{1},{5},{9}};等价于inta[3][4]={{1,0,0,0},{5,0,0,0},{9,0,0,0}};inta[3][4]={{1},{5,6}};相当于inta[3][4]={{1},{5,6},{0}};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,11,12};inta[][4]={{0,0,3},{},{0,10}};合法
5.2.1二维数组的定义和使用5.2.15.2.218inta[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,11,12};inta[][4]={{0,0,3},{},{0,10}};合法
5.2.1二维数组的定义和使用5.2.15.2.219
例6.4将一个二维数组行和列的元素互换,存到另一个二维数组中。
5.2.1二维数组的定义和使用5.2.15.2.2205.2.2二维数组的初始化解题思路:1.可以定义两个数组:数组a为2行3列,存放指定的6个数2.数组b为3行2列,开始时未赋值3.将a数组中的元素a[i][j]存放到b数组中的b[j][i]元素中4.用嵌套的for循环完成5.2.15.2.221#include<stdio.h>intmain(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf("arraya:\n");for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}5.2.2二维数组的初始化5.2.15.2.222
printf("arrayb:\n");for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}return0;}5.2.2二维数组的初始化5.2.15.2.2字符数组03235.3.1字符数组的定义241.用来存放字符数据的数组是字符数组字符数组中的一个元素存放一个字符2.定义字符数组的方法与定义数值型数组的方法类似charc[10];c[6]=’a’;c[7]=’p’;c[8]=’p’;c[0]=’I’;c[1]=’’;c[9]=’y’;c[2]=’a’;c[3]=’m’;c[4]=’’;c[5]=’h’;5.2.15.3.225charc[10]={’I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’};charc[10]={’c’,’’,’p’,’r’,’o’,’g’,’r’,’a’,’m’};c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]Iam
happycprogram\0c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]5.3.1字符数组的定义5.2.15.3.226chardiamond[5][5]={{’’,’’,’*’},{’’,’*’,’’,’*’},{’*’,’’,’’,’’,’*’},{’’,’*’,’’,’*’},{’’,’’,’*’}};5.3.1字符数组的定义5.2.15.3.227例6.6输出一个已知的字符串。1.解题思路:定义一个字符数组,并用“初始化列表”对其赋以初值2.用循环逐个输出此字符数组中的字符5.3.1字符数组的定义5.2.15.3.228#include<stdio.h>intmain(){charc[15]={'I','','a','m','','a','','s','t','u','d','e','n','t','.'};inti;for(i=0;i<15;i++)printf("%c",c[i]);printf("\n");return0;}5.3.1字符数组的定义5.2.15.3.2291.puts函数----输出字符串的函数1.其一般形式为:puts(字符数组)2.作用是将一个字符串输出到终端charstr[20]=”China”;puts(str);
输出China5.3.2常用字符数组处理函数5.2.15.3.2302.gets函数----输入字符串的函数(1)其一般形式为:gets(字符数组)(2)作用是输入一个字符串到字符数组charstr[20];gets(str);
Computer↙5.3.15.3.25.3.2常用字符数组处理函数313.strcat函数----字符串连接函数(1)其一般形式为:
strcat(字符数组1,字符数组2)(2)其作用是把两个字符串连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中5.3.2常用字符数组处理函数5.3.15.3.2324.strcpy和strncpy函数-字符串复制1.strcpy一般形式为:strcpy(字符数组1,字符串2)2.作用是将字符串2复制到字符数组1中去charstr1[10],str2[]=”China”;strcpy(str1,str2);5.3.2常用字符数组处理函数5.3.15.3.2335.strcmp函数----字符串比较函数1.其一般形式为strcmp(字符串1,字符串2)2.作用是比较字符串1和字符串23.strcmp(str1,str2);4.strcmp(”China”,”Korea”);5.strcmp(str1,”Beijing”);5.3.2常用字符数组处理函数5.3.15.3.2346.strlen函数----测字符串长度的函数(1)其一般形式为:
strlen(字符数组)(2)它是测试字符串长度的函数(3)函数的值为字符串中的实际长度5.3.2常用字符数组处理函数5.3.15.3.2357.strlwr函数----转换为小写的函数(1)其一般形式为
strlwr(字符串)(2)函数的作用是将字符串中大写字母换成小写字母5.3.2常用字符数组处理函数5.3.15.3.2368.strupr函数----转换为大写的函数(1)其一般形式为
strupr(字符串)(2)函数的作用是将字符串中小写字母换成大写字母5.3.2常用字符数组处理函数5.3.15.3.2数组应用举例043738
例6.3有10个地区的面积,要求对它们按由小到大的顺序排列。解题思路:1.排序的规律有两种:一种是“升序”,从小到大;另一种是“降序”,从大到小2.把题目抽象为:“对n个数按升序排序”3.采用起泡法排序5.4.15.4.25.4.1一维数组举例39a[0]a[1]a[2]a[3]a[4]a[5]9854208954208594208549208542905.4.1一维数组举例5.4.15.4.240inta[10];inti,j,t;printf("input10numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("\n");for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("thesortednumbers:\n");for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");5.4.1一维数组举例5.4.15.4.25.4.2二维数组举例41
例6.5有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。1.解题思路:采用“打擂台算法”2.先找出任一人站在台上,第2人上去与之比武,胜者留在台上3.第3人与台上的人比武,胜者留台上,败者下台4.以后每一个人都是与当时留在台上的人比武,直到所有人都上台比为止,最后留在台上的是冠军5.4.15.4.242fori=0to2forj=0to3max=a[i][j]row=Icolum=ja[i][j]>max真max=a[0][0]输出:max,row,colum假5.4.15.4.25.4.2二维数组举例43……
inti,j,row=0,colum=0,max;inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林艺术学院《数字出版》2021-2022学年第一学期期末试卷
- 吉林艺术学院《剪辑技术》2021-2022学年第一学期期末试卷
- 吉林艺术学院《当代艺术思潮》2021-2022学年第一学期期末试卷
- 吉林师范大学《中国共产党历史》2021-2022学年第一学期期末试卷
- 2024年大棚洞子承包协议书模板
- 婚纱店合伙开店协议书范文模板
- (基于系统思维的)2025届江西省新高考化学二轮复习策略 课件
- 吉林师范大学《教育统计与测量》2021-2022学年第一学期期末试卷
- 吉林师范大学《歌曲写作》2021-2022学年第一学期期末试卷
- 老年人自愿放弃社保协议书
- 2024年西藏自治区中考道德与法治试题卷(含答案解析)
- 2024版七年级英语上册单词表
- 小学高年级课后服务 scratch3.0编程教学设计 一阶第6课 愤怒的小鸟3.0 教学设计
- 《糖尿病足感染诊断治疗指南》解读及进展课件
- 小学生主题班会奥运精神开学第一课(课件)
- 新解读《JTG 5120-2021公路桥涵养护规范》
- 我们喜欢的动画片(课件)三年级上册综合实践活动教科版
- 2024年秋季学期新人教版七年级上册英语课件 Unit 4 My Favourite Subject(第4课时)SectionB 1a-1d
- 读书分享课件:《一句顶一万句》
- 2024年涉密人员考试试题库保密基本知识试题附答案(考试直接用)
- 2024年黑龙江哈尔滨市文化广电和旅游局“丁香人才周”(春季)事业单位引才招聘24人高频考题难、易错点模拟试题(共500题)附带答案详解
评论
0/150
提交评论