afu 发表于 2012-10-17 12:15:54

求教函数问题

求教一个问题:
举例:a=8|8|2|3|4|7|0|5|3|1|0|11|25
用哪个函数可以返回“0”在@a中出现的次数?
%pos不行,难道要自编?

北大侠客行MUD,中国最好的MUD

ruoyu 发表于 2012-10-17 12:52:26

14竟然是技术裆。。。湿敬湿敬

afu 发表于 2012-10-17 12:59:53

你才发现说,老衲精研挖泥技术很久了,但是如今又荒废了。

afu 发表于 2012-10-17 13:00:00

你才发现说,老衲精研挖泥技术很久了,但是如今又荒废了。

alucar 发表于 2012-10-17 13:04:30

貌似没有,自己编吧

afu 发表于 2012-10-17 13:12:35

本帖最后由 afu 于 2012-10-17 05:04 PM 编辑

貌似没有,自己编吧
alucar 发表于 2012-10-17 01:04 PM http://www.pkuxkx.com/forum/images/common/back.gif

请教大侠,我用编机器人的思路写了如下:
#if %pos(%1,@a)=0 {#sh 1个也没有} {t=%pos(%1,@a);hb_rooms=%delitem(%1,@a);#if %pos(%1,@a) {%pos(%1,@a)=tt;#sh 存着多于1个} {#sh 只存着1个}}

   目的是判断变量a中存着%1的数量,但放在alias和var里都不工作,求解,谢谢。

afu 发表于 2012-10-17 13:12:42

本帖最后由 afu 于 2012-10-17 05:03 PM 编辑

貌似没有,自己编吧
alucar 发表于 2012-10-17 01:04 PM http://www.pkuxkx.com/forum/images/common/back.gif

请教大侠,我用编机器人的思路写了如下:
#if %pos(%1,@a)=0 {#sh 1个也没有} {t=%pos(%1,@a);a=%delitem(%1,@a);#if %pos(%1,@a) {%pos(%1,@a)=tt;#sh 存着多于1个} {#sh 只存着1个}}

   目的是判断变量a中存着%1的数量,但放在alias和var里都不工作,求解,谢谢。

alucar 发表于 2012-10-17 15:40:38

是zmud721么?
先用%ismember函数代替%pos试试
462下list函数功能偏少,实现起来更麻烦
另外,%pos(%1,@hb_rooms)=tt 这句有误吧

另一种思路(适用zmud721):
1、令i=%numitems(@a)取得list变量中的元素数量
2、用#delitem a 0删除list中所有的元素“0”
3、令j=%numitems(@a)取得删除0后的元素数量
4、i与j的差就是0的个数

afu 发表于 2012-10-17 17:03:07

受教了,谢谢!
经测试用这种方法可以实现目标,但还有个小小的问题,如能解答则十分感谢:
如果忽略语法错误,我那个法子怎么实现?

afu 发表于 2012-10-17 17:03:11

受教了,谢谢!
经测试用这种方法可以实现目标,但还有个小小的问题,如能解答则十分感谢:
如果忽略语法错误,我那个法子怎么实现?
页: [1] 2
查看完整版本: 求教函数问题