根据循环语句遍历数组元素的具体方法,阐述相关的应用技巧,实现数组的各种应用,以指导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