




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——C语言数组教程C语言数组教程
引导语;数组是将一致数据类型的元素按确定依次排列的集合,以下是我共享给大家的C语言数组教程,接待阅读!
一、数组的声明
声明数组的语法为在数组名后加上用方括号括起来的维数说明。本接仅介绍一维数组。下面是一个整型数组的例子:
intarray[10];
这条语句定义了一个具有10个整型元素的名为array的数组。这些整数在内存中是连续存储的。数组的大小等于每个元素的大小乘上数组元素的个数。方括号中的维数表达式可以包含运算符,但其计算结果务必是一个长整型值。这个数组是一维的。
下面这些声明是合法的:
intoffset[5+3];
floatcount[5*2+3];
下面是不合法的:
intn=10;
intoffset[n];/*在声明时,变量不能作为数组的维数*/
二、用下标访问数组元素
intoffset[10];
说明该数组是一维数组,里面有10个数,它们分别为offset[0],offset[1],offset[9];千万留神,数组的第一个元素下标从0开头。一些刚学编程的人员经常在这儿犯一些错误。
offset[3]=25;
上面的例子是把25赋值给整型数组offset的第四个元素。
在赋值的时候,可以使用变量作为数组下标。
main
inti,offset[10];
fori=0;i10;i++scanf%d,offset[i];
fori=9;i=0;i--printf%d,offset[i];
printf\n;
题目的意思是先输入10个整数,存入到数组中,然后反序输出。
三、数组的初始化
前面说了,变量可以在定义的时候初始化,数组也可以。
intarray[5]=1,2,3,4,5;
在定义数组时,可以用放在一对大括号中的初始化表对其举行初始化。初始化值的个数可以和数组元素个数一样多。
假设初始化的个数多于元素个数,将产生编译错误;假设少于元素个数,其余的元素被初始化为0。
假设维数表达式为空时,那么将用初始化值的个数来隐式地指定数组元素的个数,如下所式:
intarray[]=1,2,3,4,5;
这也说明数组array元素个数为5。
main
inti,array[]=1,3,5,7,9,11;
fori=0;i5;i++printf%d,array[i];
printf\n;
最终结果为13579
四、字符数组
整数和浮点数数组很好理解,在一维数组中,还有一类字符型数组。
chararray[5]=H,E,L,L,O;
对于单个字符,务必要用单引号括起来。又由于字符和整型是等价的,所以上面的字符型数组也可以这样表示:
chararray[5]=72,69,76,76,79;/*用对应的ASCII码*/
举一个例子:
main
inti;
chararray[5]=H,E,L,L,O;
fori=0;i5;i++printf%d,array[i];
printf\n;
最终的输出结果为7269767679
但是字符型数组和整型数组也有不同的地方,看下面的`:
chararray[]=HELLO;
假设我们能看到内部的话,实际上编译器是这样处理的:
chararray[]=H,E,L,L,O,\0;
看上面结果一个字符\0,它是一个字符常量,TurboC编译器总是给字符型数组的结果自动加上一个\0,这是字符的终止标志。所以虽然HELLO只有5个字符,但存入到数组的个数却是6个。但是,数组的长度依旧是5。
inti;
i=strlenarray;/*求字符串的长度,在string.h里面*/
可以看出i依旧是5,说明结果的\0没有算。
#includestring.h
main
inti,j;
chararray[]=094387fdhgkdladhladaskdh;
j=strlenarray;
fori=0;iprintf\n;
其实我们可以根据判断\0来输出字符串,看下面的:
C语言数组教程
main
inti;
chararray[]=094387fdhgkdladhladaskdh;
fori=0;array[i]!=\0;i++printf%c,array[i];
printf\n;
举几个例子:
1.输入10个整数存入数组中,然后把它们从小到大排列并放在同一数组中。思路:先找出最小的,放在第一个位置,为了防止把原先的数笼罩掉,可以把原先的第一个数和最小数的位置互换。
main
intarray[10];
inti,j,min,stmp;
fori=0;i10;i++scanf%d,array[i];
fori=0;i9;i++
min=array[i];
forj=i+1;j10;j++
ifminarray[j]/*里面的4行语句很重要*/
min=array[j];
stmp=array[i];
array[i]=array[j];
array[j]=stmp;
fori=0;i10;i++printf%d,array[i];
printf\n;
分析:先让第一个值作为基准,假设后面有比它小的,那么就把这两个数互换一下,同时把基准换成小的值。两个数互换理应这样stmp=a;a=b;b=stmp;,而不是a=b;b=a;,想想这是为什么?务必要用一个变量作为桥梁。这种一个一个的把最小的放在前面的排序方法,我们形象的叫做冒泡法。
2.输入一行字符存入数组,然后把他们反序存入到同一数组中。
#includestdio.h
main
charc,stmp,array[80];
inti=0,j;
whilec=getchar!=\n/*留神这儿的用法*/
array[i++]=c;
array[i]=\0;/*为什么要加\0?是否可以不加?*/
forj=i-1;j=i/2;j--
stmp=array[j];
array[j]=array[i-1-j];
array[i-1-j]=stmp;
fori=0;array[i]!=\0;i++printf%c,array[i];
printf\n;
3.一个已经排好序的数组,输入一个数,利用二分法把这个数从原数组中删除,数组依次保持不变。如原数组为1,3,5,7,9,11,13,15,17,19,待删除的数为13,那么输出为1,3,5,7,9,11,15,17,19。
二分法:每次都是判断中间的数是否得志要求,若得志那么删除,若不得志,那么把该数当作边界,然后再找中点。例如这一题,第一次的是10个数的中点,为11,察觉1113,那么找11-19的中点15,察觉1513,再找11-15的中点13,正好,那么删除。
main
intarray[10]=1,2,3,5,8,15,20,30,100,200;
intfirst=0,end=9,middle=first+end/2,num,i;
scanf%d,num;
whilearray[middle]!=num/*留神这里面的三行代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/CIE 11664-5:2024 EN Colorimetry - Part 5: CIE 1976 L*u*v* colour space and u,v'uniform chromaticity scale diagram
- 【正版授权】 ISO 15004-2:2024 EN Ophthalmic instruments - Fundamental requirements and test methods - Part 2: Light hazard protection
- 2025年基因工程项目合作计划书
- 2025年冷光源:EL冷光片项目合作计划书
- 2025年度公路桥梁钢筋供应与施工承包协议
- 2025年度办公楼物业环境监测与改善服务协议
- 2025年度特色餐饮店品牌独家承包经营合同协议
- 2025年度全国巡演活动场地租赁合同范本
- 急诊病人流量预测与管理计划
- 2025年无菌包装用包装材料合作协议书
- 甘肃省兰州市兰炼一中2025届数学高一上期末统考试题含解析
- EPC总承包项目工程设计各阶段的服务承诺
- 期末试卷(试题)-2024-2025学年三年级上册数学冀教版
- “小学英语对话教学”研究课题方案
- 城市地下管网建设工程投标书(范文)
- 2024-2030年中国达克罗行业运行态势与前景展望分析报告
- 联合体三方协议合同模板
- 五上数学简便运算500道及答案
- 2023届高考英语全国甲卷试卷讲评课件
- 山东省临沂市2024年中考物理真题
- 第2课《“友邦惊诧”论》(教学设计)-【中职专用】高二语文同步课堂(高教版2024·拓展模块上册)(同课异构)
评论
0/150
提交评论