admin 管理员组文章数量: 1087139
2024年2月25日发(作者:简历免费模板在哪里找)
ISSN1009-3044ComputerKnowledgeandTechnology第16卷第35期(2020年12月)电脑知识与技术Vol.16,No.35,December.2020E-mail:*************.cnComputerKnowledgeandTechnology电脑知识与技术http://:+86-551-6569C语言程序设计中数组的有效运用周亚辉(荆州教育学院,湖北荆州434000)摘要:随着人工智能和计算机技术的不断发展,C语言因其独特优势一直被广泛应用。数组是C语言中常用的数据类型之一,本文介绍了C语言在程序设计中数组的有效运用,首先文章从数组的排序、插入、删除和应用四个方面介绍了数组的各类应用和编程方法,然后介绍了数组和指针的关系,并以处理转置矩阵为例介绍了数组和指针的联合应用是如何解决实际问题的。本文所做研究对C语言的数组的学习和应用提供了一定的指导意义。关键词:C语言;数组;应用中图分类号:TP311文献标识码:A开放科学(资源服务)标识码(OSID):文章编号:1009-3044(2020)35-0209-021引言自1972年C语言作为一种独立的面向过程的开发语言问世以来,一直作为适应于底层开发的通用设计语言。因其编译方式简单,低级存储器便可处理编译工作,不需要任何其他编译环境,且支持高校程序设计,多年来一直被广大开发者热衷[1]。其跨平台输出的特点,决定了C语言程序可在嵌入式处理器等平台中被编译和使用。与C++和JAVA等面向对象编程的语言不同,C语言的主要目标是实现简易编译、适应低级存[2]储器,高编译效率。C语言主要的数据类型包括:整数型、字符型、实型、浮点型、枚举型、数组类型、结构体类型、共用体类型、指针类型和空类型。数组是一组有序的元素组合序列,为了方便计算机进行数据处理[3],把无序的元素按照一定的次序有序组织起来。从数据处理角度讲,数组能够方便解决各类复杂的数据处理问题。元素是构成数组的基本单位,不同元素通过顺序号将其顺序标识。根据数组中元素的类型可以分为字符型数组、数值型[4]数组、指针数组和结构数组等。虽然C语言中数组类型定义比较简单,但因其由于范围广,在进行排序、字符串处理、计算函数处理等过程中,都离不开数组[5]。本文介绍C语言设计过程中,数组的有效运用,对其在解决实际问题过程中的方法进行总结。对于数组的应用,首先要掌握其基本操作,如变量定义、赋值和使用。一般数组的应用可以分为五大类:排序、插入、删除、合并、查询,还可来存储大数据。泡排序、交换排序法等,其中冒泡排序法是排序的最常用方式。针对a[0]-a[9]10个数字采用冒泡排序法进行排序,应用案例如下:1)数组元素输入;a[0]-a[9];2)数组中相邻元素两两比较,数值大者往前冒泡,数值小者往后冒泡;3)第一轮比较结束后,用相同方式再进行循环比较。若数组中元素个数有N个,则N-1轮便可将数组按照从大到小的顺序排好。若此排序要求,不按照冒泡等排序算法进行而用常规变量解决,需定义10个变量,且无法再排序过程中借助循环法解决此问题。2.2插入2数组的应用2.1排序针对已经做好排序工作的数组,若要在数组中增加新元素,并且按照原有排序规则重新组合新数据,是常见的一类数组操作。数组插入元素的基本操作步骤如下。比较待插入元素X和数组中末尾元素的大小,若末尾元素大于X,则将X直接插入至数组末尾,若末尾元素小于X,则一次比较a[0]-a[n-1],直至a[i]>X是,将X插入a[i-1]之后,a[i]之前,同时将其后的元素逐一后移,增加其序号值。在数组元素插入过程中,常见问题是会出现数组index越界问题,发生此类问题的主要原因在于数组在定义之初,未充分考虑元素插入问题,插入新元素后其容量比原有数组定义元素数量数值大。还有常见问题是,当出现比X大的数组元素时,未进行中段操作,致使插入错误。2.3删除排序是程序设计中最常见的一种算法,对于数组的排序也是C语言编程中的一类重要内容,排序规则也是其他应用开发的基础。排序是将无规则的数据或者字符串等元素,按照固定规则和顺序进行大小排列,常见的排序防范有插入法排序、冒数组删除和数组插入类似。数组删除分两种情况,一类是未排序数组的元素删除,一类是已排序数组的元素删除。两类数组元素的删除逻辑相同,具体步骤如下:1)在键盘中输入数组中要删除的元素;收稿日期:2020-10-15作者简介:周亚辉(1980—),男,湖北仙桃人,本科(学士),讲师,荆州教育学院,研究方向为单片机。本栏目责任编辑:梁书计算机工程应用技术209
ComputerKnowledgeandTechnology电脑知识与技术作,如果不存在则忽略此元素;2)所输入元素在数组中是否存在,如果存在则执行删除操依次递补,3)若数组本身是已排序数组,数组元素总数减1。则在数组删除元素位置进行在删除数组元素过程中,元素漏删现象较多,一旦输入元素在数组中连续出现时,为了保证删除动作正常进行,应该在程序中一次删除多个元素。其程序逻辑图如图1所示。图1数组数据删除操作程序图2.4合并数组的合并是对两个已经实现排序的数组重新合并后组成新数组的过程,合并完成后的数组仍然要有序。2.5查询常规的数组元素查询方法一般是根据输入元素从数组中每个元素逐一查找,直至查询到元素为止,若数组中查找不到被查元素,则程序结束。此种查找方式查询效率较低,假设数组中存在500个元素且被查元素在数组末尾,则需要进行499次比较才能得到最终结果。按照概率计算,数组元素的搜索至少需要250次方可完成比较。折半法是常用的数组元素查找方法,其查找效率比正常查找效率高、速度快。例如存在数组,其元素数量为9,分别为1,2,3,7,11,16,18,19,22,若输入3,查找3是否在数组中,步骤如下:到大顺序排序。中位数为1)首先找出数组中位置居中的数,由于数组已经按照从小a[1]-a[5]2)比较3和11的大小,11若前者小于后者,。则在全班段中(即[3]查找效率上有了很大提升。若数组中数组元素的含量为,恰好3)根据以上逻辑继续在中)寻找与3相同的元素。a[3]=3,因此,通过两步便得到了最终想要的结果。在a[1]-a[5]中寻找,再次取中位数,a(log2n)+1int3数组与指针。数组和指针在C语言中是联系最紧密的两种数据类型,对于数组的处理,往往借助指针的手段实现。在具体程序设计中,数组和指针的关系很容易被混淆。具体来讲,指针是用来存放具体变量之地址的变量。变量中保存了其他变量的地址,根据对变量地址的访问间接实现对变量的访问。3.1指针和一维数组可借助数组元素的指针实现指针和一维数组的关联,也就是通过定义数组元素的指针,并将其指向一维数组的第一个元素。假设p是已经被定义的指向整形数组的指针,且已被赋值,使其指向数组元素的第一个元素,则p+1便指向数组的第210计算机工程应用技术第16卷第35期(2020年12月)二个元素。3.2指针和多维数组多维数组和指针的关系比较复杂,其使用方法也相对灵活,这样在一定程度上增加了编程的复杂性。本文以二维数组为例,5,7},{7,8,10,11}}介绍指针和其关系。首先定义intb[3][4]的,[1],a[2]a数组含有3,个行和由于二维数组是指由两个一维数组组合而成={{0,2,4,6},{1,3,4储过程中是按照行的主顺序方法占据一连串存储空间的,,每个一维数组又含有个列,4个子元素。另外,其三个行可以分别表示为二维数组在存a[0],aC因此元素外,语言通过建立二维数组和指针的关系,还可采用数组指针和指针数组两种方式。除使用指针指向数组(1)数组的指针。数组的指针可以是一个指向多维或者一维的指针,定义数组指针后,可以对其复制,并以此在数组和指针之间建立起关联关系。例如int(*)p[4]=a,定义了p为数组指针,并将其赋值为数组a。(2)指针数组。数组的元素可以为整数,也可以为浮点型数据或字符类数据。故数组的元素种类可以是多种多样的,因此数组的元素类型也可以为指针类型。例如定义[0],b[1],b[2]}int*p[3]=数组。,此种形式表示定义了包含有3个整数型指针的{b具体应用过程中,为了不断优化C语言的程序,进而提升程序的运转效率,在程序中会充分利用数组和指针的关系,借助指针实现对数组元素的间接访问。例如通过C语言编程的方式实现对4*4矩阵的转置操作等。在C语言中可借助二维数组实现对矩阵的存储,并可采用相关算法实现矩阵的转置。使用指针实现对数组元素的引用首先需要将数组和指针之间建立起关联关系。具体程序实现如下所示:#include
ComputerKnowledgeandTechnology电脑知识与技术第16卷第35期(2020年12月)所示。是对智能灌溉系统设计的一种有效探索。参考文献:[1]盛会,郭辉,张学军,等.浅谈智能灌溉技术应用现状[J].新疆农机化,2016(1):23-27.[2]高峰,孙成权,刘全根.太阳能开发利用的现状及发展趋势[J].世界科技研究与发展,2001,23(4):35-39.[3]刘俊岩,张海辉,胡瑾,等.基于ZigBee的温室自动灌溉系统设计与实现[J].农机化研究,2012,34(1):111-114,118.[4]吴世海.立柱式双轴全自动太阳能光伏跟踪控制系统的研究[D].西安:西安理工大学,2017.[5]陆建章,杨天宇,马小斌,等.基于单片机的双轴太阳光追踪器设计[J].科技创新与应用,2016(2):27-28.[6]张玉燕,刘勇,温银堂,等.基于STM32的太阳自动追踪系统[J].光学精密工程,2016,24(10):415-420.[7]曹靖,宋娇红,王冰.农业水肥一体化智能灌溉控制系统开发与应用[J].中国农业信息,2019(6):116-122.[8]王应海.土壤含水量(土壤湿度)数据在智能灌溉决策系统中的应用研究[J].节水灌溉,2017(4):99-100,105.【通联编辑:唐一东】图8灌溉流程图4结语本系统通过光照自动跟踪,提高了能量的收集能力。通过环境温度和土壤湿度检测,综合判断灌溉水量,起到了对水资源合理有效利用的目的。本实验装置主要针对小型灌溉系统,(上接第210页)体实现方式不再赘述。指针和数组是C语言学习过程的重中之重,也是C语言学习过程中的难点之一,若不能充分理解数组和指针的相互关系,便无法充分借助C语言便利的编程方法解决实际问题,C语言的实际效能便大打折扣。为C语言学习过程中数组的应用提供了借鉴和指导意义。参考文献:[1]沈逸飞,任春龙,胡云飞,等.浅析C语言、Java、Python的数组合并方法[J].电脑知识与技术,2020,16(3):78-82.[2]马振婴.C语言程序设计课程指针的教学设计[J].科教导刊,2019(7):111-112.[3]常欢,罗奇鸣,李薛剑,等.AliasAnalysisAlgorithmforCPro⁃gramsBasedonaStackMemoryModel[J].小型微型计算机系统,2019,40(2):353-358.[4]张乐,杨立.基于问题引导法的C语言一维数组插入算法教学过程分析[J].现代计算机(专业版),2018,621(21):64-67+71.[5]李凌.C语言的教学设计——基于布卢姆教育目标分类理论视角[J].柳州职业技术学院学报,2018,18(4):76-80.【通联编辑:李雅琪】4结论随着人工智能和计算机技术的飞速发展,各类芯片被不断开发出来,随之嵌入式应用也越来越被广泛应用,C语言作为开发的最基础类语言,引起具有开发简便、编译速度快、入门快且对编译器的存储能力要求不高等问题,也越来越被受到重视。数组作为C语言中应用最为广泛的数据类型之一,和链表、指针等关系紧密,因其具有数据规律性存储的特点,其在编程中时长被用到。本文总结了C语言数组的各类数据处理方式和C语言中数组和指针的关系,介绍了数组和指针的关系,(上接第221页)参考文献:[1]TangLX,LiuJY,RongAY,pletravelingsalesmanproblemmodelforhotrollingschedulinginShang⁃haiBaoshanIron&SteelComplex[J].EuropeanJournalofOp⁃erationalResearch,2000,124:267-282.[2]张涛,王梦光,杨建夏.不确定计划数的轧制批量计划的模型和算法[J].系统工程学报,2000,15(1):54-60.[3]刘士新,宋健海,周山长.热轧带钢轧制批量计划优化模型及算法[J].控制理论与应用,2007,24(2):243-248.[4]宁树实,王伟.热轧批量计划编制模型及其算法[J].系统仿真学报,2007,19(3):691-694.[5]李铁克,郭冬芬.基于约束满足的热轧批量计划模型与算法[J].控制与决策,2007,22(4):389-393,398.【通联编辑:代影】本栏目责任编辑:梁书224计算机工程应用技术
版权声明:本文标题:C 语言程序设计中数组的有效运用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1708875164a533386.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论