版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章
数组批量处理数据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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度建筑用沙石供需合同3篇
- 2024年度医疗废物处理合同5篇
- 2024山东劳动合同终止与接续操作规范3篇
- 2024年度长春房产仲裁调解合同3篇
- 2024年工业污水处理厂污泥安全处置及综合利用服务合同3篇
- 2024版二手房买卖合同范本(带物业交割)3篇
- 2024年度能源项目开发合同合作模式3篇
- 2024年度泥浆外运与固废处理协同服务合同3篇
- 2024年房产项目经理职责分工合同2篇
- 2024年标准个人二手车买卖合同书
- 青蓝结对小学语文工作计划
- 法务工作月度汇报
- 期末测评-2024-2025学年统编版语文三年级上册
- 安全攻防实验室建设
- 消防泵操作规程
- 怎样保护我们的眼睛(教学设计)-2024-2025学年五年级上册综合实践活动教科版
- 2024-2030年全球与中国石墨匣钵市场现状动态及投资价值评估报告
- 肾穿刺活检术的准备和操作方法教学提纲
- 20以内的加法口算练习题4000题 210
- 读书分享课件:《一句顶一万句》
- GB 17927-2024家具阻燃性能安全技术规范
评论
0/150
提交评论