TC官方合作论坛
标题: TC数组功能 第十四章 [打印本页]
作者: Abin 时间: 2012-7-7 17:38
标题: TC数组功能 第十四章
数组
数组,顾名思义就是一组同类型的数。
一、数组的声明
声明数组的语法为:在数据类型后加方括号括来说明。本接仅介绍一维数组。下面是一个整型数组的例子:
这条语句定义了一个具有10个整型元素的名为array的数组。方括号中的维数表达式可以包含运算符,但其计算结果必须是一个长整型值。这个数组是一维的。
下面这些声明是合法的:
- 整型[] offset = 整型 [5*2]
- 浮点型[] count = 浮点型[5*2+3]
复制代码
下面是不合法的:
- 整型[] offset= 整型 [5*2/3] // 数组的大小不能为浮点数
复制代码
二、用下标访问数组元素
表明该数组是一维数组,里面有10个数,它们分别为offset[0],offset[1],……offset[9];千万注意,数组的第一个元素下标从0开始。一些刚学编程的人员经常在这儿犯一些错误。
offset[3]=25;
上面的例子是把25赋值给整型数组offset的第四个元素。
在赋值的时候,可以使用变量作为数组下标。
- 整型 下标 = 0
- 整型[] offset =整型[5*2]
- 重复(10)
- offset[下标] =辅助.随机数(10,30)
- 下标 =下标 + 1
- 重复结束
复制代码 题目的意思是随机产生10~30之内的10个整数,存入到数组中。
三、数组的初始化
前面说了,变量可以在定义的时候初始化,数组也可以。
- 整型[] array = 整型[5]
- array[0] = 1
- array[1] = 2
- array[2] = 3
- array[3] = 4
- array[4] = 5
复制代码初始化值的个数可以和数组元素个数一样多。
如果初始化的个数多于元素个数,将产生编译错误;如果少于元素个数,其余的元素被初始化为0。
举个例子:
1.输入5个整数存入数组中,然后把它们从小到大排列并放在同一数组中。(思路:先找出最小的,放在第一个位置,为了防止把原先的数覆盖掉,可以把原先的第一个数和最小数的位置互换)。
- 整型[] array = 整型[5]
- 整型 i=0,j=0,min=0,stmp=0
- 重复(5)
- array[i] =辅助.随机数(10,30) // 随机生成5个数
- i =i + 1
- 重复结束
- 字符型 输入内容
- 输入内容 = 字符串.格式化("随机数为:%d,%d,%d,%d,%d", array[0] , array[1] , array[2] , array[3] , array[4])
- 辅助.消息框(输入内容)
- //// 开始排序
- i=0
- 循环(i<4)
- min=array[i]
- j=i+1
- 循环(j<5)
- 如果(min>array[j]) // 里面的4行语句很重要
- min=array[j]
- stmp=array[i]
- array[i]=array[j]
- array[j]=stmp
- 如果结束
- j = j + 1
- 循环结束
- i = i + 1
- 循环结束
- 输入内容 = 字符串.格式化("排列后的数据为:%d,%d,%d,%d,%d", array[0] , array[1] , array[2] , array[3] , array[4])
- 辅助.消息框(输入内容)
复制代码 分析:先让第一个值作为基准,如果后面有比它小的,那么就把这两个数互换一下,同时把基准换成小的值。两个数互换应该这样(stmp=a;a=b;b=stmp;),而不是(a=b;b=a;),想想这是为什么?必须要用一个变量作为桥梁。这种一个一个的把最小的放在前面的排序方法,我们形象的叫做冒泡法。
二维数组
比方说我们熟知的坐标系,在2D游戏里,一组(X,Y)坐标决定人物的位置,而这里的坐标,我们就可以用二维坐标来描述。
二维数组的定义:数据类型 [][] 数组名
比方我们知道游戏里的5组坐标,那么我们就可以定义一个这样的二维数组:
整型[][] 坐标 = 整型[5][2]
[attach]4160[/attach]
这个就可以很清楚的表示:列号为0的表示X坐标,列号为1的表示Y坐标。
二维数组的引用
二维数组和一维数组的使用差不多,不过二维数组提供了二种方法遍历,一种是:先横向再纵向,另一种是:先纵向再横向。不过二种方法的效果都是一样的!那么我们来看看具体怎么访问二维数组。
例如:
- 整型[][] 坐标 = 整型[5][2]
- 整型 i=0,j=0
- 循环(i<5)
- j=0
- 循环(j<2)
- 坐标[i][j]=辅助.随机数(11,32)
- j = j + 1
- 循环结束
- i=i+1
- 循环结束
复制代码二维数组的大小:整型[][]坐标 = 整型[5][2]
// 大小为 5*2
三维数组
定义:
类型[][][] 数组名
如:整型[][][] 变量
初始化大小:变量 = 整型[10][2][3]
数组的大小/长度: N*N*N
整型[10][2][3]这里的大小为10*2*3=60
数组的访问:数组名 [下标1][下标2][下标3]
下标的值为0~N-1
N为数组的长度。
多维数组操作复杂,一般用到二维就够了。
http://player.youku.com/player.php/Type/Folder/Fid/17846022/Ob/1/sid/XNDI2NjI3MDY0/v.swf
如果对第十三章空间的定义还不熟悉的同学可以回顾一下
作者: 从来没赢过 时间: 2012-7-7 17:39
顶一个
作者: 陌上青衣。 时间: 2012-7-7 17:50
支持一下老师
作者: whoyeyang 时间: 2012-7-7 19:17
顶顶顶~~
作者: qiu408974 时间: 2012-7-10 20:46
学习学习再学习
作者: notker88 时间: 2012-7-10 21:00
路过
作者: cylhb 时间: 2012-7-11 14:12
相当详细,新手仔细看看啊
作者: 最爱念 时间: 2012-7-11 14:13
支持abin老湿,昨晚有事没去听课,罪过罪过,一会下视频看去
作者: feng123144 时间: 2012-7-11 15:06
看过了,还没学
作者: 落幕 时间: 2012-7-21 20:09
经典,,,
作者: lw082273 时间: 2012-8-8 18:40
回复 1楼Abin的帖子
可不可以给一维数组赋坐标呢?
坐标[3]={(x0,y0)(x1,y1)(x2,y2)(x3,y3)(x4,y4)}
作者: myismaln 时间: 2012-8-16 19:04
顶一个,这个就复杂了
作者: zzqtkj 时间: 2012-8-20 14:51
中文语法真让人崩溃啊
作者: kk1304231990 时间: 2012-10-7 07:59
老师威武
作者: 05windows 时间: 2012-10-23 21:47
看不懂
作者: wyf0931 时间: 2012-10-30 10:50
老师,我想写一个自动开启或关闭服务程序的脚本,怎么做?给点意见。
作者: laowantong 时间: 2013-3-2 08:11
学习
作者: ijljewvf 时间: 2013-3-5 13:53
看不懂 怎么办????
作者: slz336 时间: 2014-8-26 13:52
无基础 新手来学学
| 欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) |
Powered by Discuz! X3.1 |