当前位置: 首页 > news >正文

c语言中二维数组循环,C语言循环语句在二维数组中的应用

根据循环语句遍历数组元素的具体方法,阐述相关的应用技巧,实现数组的各种应用,以指导C语言学习者对循环语句和数组的理解和应用。

维普资讯 http://doc.xuehai.net

本目任辑:媛 栏责编谢媛

开发研究与设计技术

C语言循环语句在二维数组中的应用

从艳,益夫。喜梅任刘

(北农业大学海洋学院,北秦皇岛 06 0 )河河 6 03

摘要:据循环语句遍历数组元素的具体方法,根阐述相关的应用技巧 .实现数组的各种应用 .以指导 C语言学习者对循环语句和数组的理解和应用。 关键词:环语句:循存储格式:维数组二

中图分类号: P 0 T 31

文献标识码: A

文章编号:0 9 3 4 (0 71 - 0 1— 2 1 0— 0 42 0 )3 3 1 1 0

,

C O N G a, EN i u, U ~m e Y nK Y—f LI Xi i

Ap l ain o L n u g cig Se t n e i wo De n in Ar pi t fC a g a e Cy l ne c n T me so my c o n

( en C n g f b i g c l r ie i, n u n d o0 6 0, hn ) Oc a o e eo e A r ut a Un r t Qi a g a 6 0 3C ia He i u l v s y h

Ab ta t n t s a e,ae n t e c c n e t n e S ̄ v h g tr u h t e a a, a o so piai n tc n q e ft e ae ea o a e s r c: h p r sd o h y h g s n e c I i p b a e n o g r y v r u fa l t e h i u so m r l r td h h r i p c o h b

S st n tuc heC n ua el a e o un rtnd a d a l hec ci g s n e c nd a a . O a o isr tt La g g e r rt de a n ppy t y ln e t n e a r y n s

K ywod: cigS ne c;trg oma;wo De e s n Ara e rsCy l e tn eSo a eF r t n T m ni ry o

1引言

数组是一种常见的线性数据结构 .软件工程及其它各个领在域都有着广泛的应用。对于程序设计语言的初学者来说,组和数

循环结构程序设计都是重点掌握的内容 .里主要讨论如何利用这循环语句访问二维数组中的元素。

2

数组的存储结构

数组是存储于一个连续存储空问中的相同数据类型的数据元素的集合,一种常见的线性数据结构。二维数组在实现存储是时 .要采用顺序存储方式进行存储 .主即将二维数组元素按照顺序排列在一个连续的存储区域中 .据数组元素的排列顺序可以根分为按行存放和按列存放两种方式。存储示意图如下:

p n (%d,】 i f f“”【 ) a; p n ( I )实现换行/ i r f“ l;\” 1 1程序中,循环变量由 0变化到 2可以实现依次访问二维数外组的 3行。由于 C语言中二维数组的下标由 0开始 .了和数组为元素的下标一致,常情况下循环变量的初始值设置为 0要按照通,行递增的顺序遍历二维数组 .环变量的增量设置为 l循环的终循,值控制二维数组的行数。内循环变量由 0变化到 3可以实现依次访问二维数组的 4列。控制的方式同二维数组行的控制方法,由 此实现二维数组某一行各列的访问。其中内循环体为访问到的每

个数组元素的具体操作。算法的时间复杂度为 O(2。 n)

4循环语句在压缩存储的数组中的应用

对于一些特殊数组,以使用压缩存储。特殊数组指的是数可组中存在大量的值相同的元素或 0元素并且这些元素的分布呈现一定的规律,。压缩存储的思想是为多个值相同的元素只分配个存储空间 . 0元素不分配空间。采用压缩存储可以节省大对量的存储空间因为特殊二维数组值相同的元素或 0元素分布呈 现一定的规律,以在存储时,的下标和存储地址之间也存在所它

(按列存储 b)

在这种情况下,由下标确定元素存储地址非常简单 .下标从到存储地址的变换可由公式计算得出。变换公式取决于二维数组是按行存储还是按列存储。C语言中二维数组是按行存储的,假设每个数据元素占 L个存储单元 . C语言二维数组中任意一个则元素 ai i的存储地址可由下列公式计算得出。

着某种转换关系,用这种关系可以求出二维数组中任意一个元利

素a的存储地址。

例如:二维数组表示下三角矩阵用

a1 l 0 0… 0

L g,=o(,+n+) o( )l 11 (ij i j e ) L

3循环语句在二维数组中的应用

综合分析二维数组的应用得知 .问二维数组中的所有元素访是应用的基础。由于二维数组的存放及数组元素的下标存在一定

a2 a2 1 2

0

0

a a3 a3 31 2:3:

0

的规律 .以通过双重循环语句运用这种规律实现二维数组中元可素的遍历。这里数组元素的遍历指的是按照某种线路依次访问数

组中的每个元素。

al a a3 n n2 n。”

a nn

因为矩阵中的下三角部分只有 nn 1 2个非 0元素,以用 (+ )/所

实现方法的主要思想是:用外循环变量控制数组元素行下利标的变化,用内循环变量控制数组元素列下标的变化。利用循利环体实现每个访问到的数组元素的具体操作。 例如:要按行输出数组中的所有元素,序如下:程

m i0 an { t[l l{1,,l56,l91,l 21 i 3[={,34,,,8,, l, 1 na 4 2{ 7{ 0 1;且初始化/

个连续的区域存储这些值即可。存储方式仍采用按行存储,存

1 I 2 l - l 3 l 3 a1 n2 a1 a2 z

储结构示意图如下: 二维数组中任意一个元素 a的存储地址可由下列公式计算 i i得出。

定义数组并

k i一 )+一=( 12 j 1 i/例如:按行输出数组中的所有非 0元素 .序如下:要程

it, /i外循环控制变量,为内循环控制变量/ ni j; *为 i

fr-;=;+ o iOi 2i ) (

m i0 an{ t[1 1{,00,,,,l4560,,,, 1 i 4[={ 0,l23 0,,,,{ 8 1 1 na 4 1,{ 0{ l7 9 0;

组并且初始化/

定义数

{ r-;= + f6 0< 3+ ) 0 j

收稿日期:0 7 6 1 2 0 -0—1

作者简介:& ̄(93 )女, 17一,河北秦皇岛人,,助讲主要从事 C语言程序设计和数据库原理教学工作;任益夫(94 )男,昌黎人, 17-,河北助讲

主要从事计算机原理教学工作;喜梅 (9 0,,北辛集人,教授,刘 17一)女河副主要从事英语教学工作和信息技术资料翻译。

1 11

1-2038-png_6_0_0_0_0_852_1199_852.479_1199.159-1449-0-0-1449.jpg

相关文章:

  • c语言线性链表检验是否为空,线性链表的实现(c语言)
  • c 语言计算自信息量,基于知网义原信息量的词语相似度的计算方法
  • android 动画懒加载,Android - 懒加载
  • android怎样拼接带参数的url,这种url网址如何拼接成android 的Retrofit注解
  • android:style/theme.holo.light,Galaxy Nexus上的Android Theme.Holo.Light在模拟器没有的时候有灰色背景...
  • 华为Android10版怎么截屏,华为Mate10怎么截屏?华为Mate10两种截图方法
  • solar2 android,Solar2(太阳系行星2)
  • 同一个页面显示多个html界面,浏览器怎么设置在同一个界面/窗口打开多个网页...
  • html中判断电话是否正确,jsjquery验证邮箱和手机号是否正确范例
  • 2021年高考成绩还能查询吗,【去年高考成绩还能查吗】_怎么查询以前的高考成绩往年高考成绩能查吗...
  • 电脑播放html5绿屏,我的电脑在看暴风影音时总是绿屏 是为什么啊?有什么解决良策啊?...
  • 使用计算机 发展了人的运算能力,计算机的发展
  • 皖西学院计算机网络期末试卷,皖西学院2013–2014学年度第1学期期末考试试卷(B卷)...
  • jq+设置html+值,jQuery 设置
  • 公共基础知识计算机考题,2017年全国计算机考试二级公共基础知识试题及答案...
  • 【EOS】Cleos基础
  • C++类的相互关联
  • co模块的前端实现
  • crontab执行失败的多种原因
  • Netty 4.1 源代码学习:线程模型
  • Otto开发初探——微服务依赖管理新利器
  • Sublime Text 2/3 绑定Eclipse快捷键
  • windows下使用nginx调试简介
  • 从setTimeout-setInterval看JS线程
  • 每天一个设计模式之命令模式
  • 用Visual Studio开发以太坊智能合约
  • 源码安装memcached和php memcache扩展
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (1) caustics\
  • (10)ATF MMU转换表
  • (C语言)共用体union的用法举例
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (一)UDP基本编程步骤
  • (转)scrum常见工具列表
  • ***通过什么方式***网吧
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net Application的目录
  • .NET 指南:抽象化实现的基类
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .net流程开发平台的一些难点(1)
  • .NET下ASPX编程的几个小问题
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • .sdf和.msp文件读取
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @Autowired注解的实现原理
  • @DataRedisTest测试redis从未如此丝滑
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [AX]AX2012 AIF(四):文档服务应用实例