开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 971|回复: 13
收起左侧

[已解决] 如何判断范围?

 关闭 [复制链接]
结帖率:94% (131/139)
发表于 2019-1-12 15:22:00 | 显示全部楼层 |阅读模式   山东省青岛市
8精币
想了一上午没想出正确的解决方案。
要判断的数据是这样的。
一级=4
二级=20
三级=40
四级=70
五级=90
六级=100
七级=200
八级=400
九级=700
然后以此类推,等级数量不限。但是从读取出来一直到判断完成这个数据是不会发生变化的。
读入成自定义数据类型成员我已经会了,问题是怎么来判定它属于哪个等级(采用最快的办法,我不想一级一级的判断)

我想判断的情况是如果给出的数字小于4就返回一级,如果大于4且小于20就返回二级。以此类推。,到最后一项诶呦了以后只要大于700就判定为九级

因为这里面等号前后的文本都是允许用户自行设定的,因此判断逻辑比较复杂【即“一级”到“九级”和4到700这些都是会发生变化的,最后等级数量还是不限的】

最好能给个例子学习下


补充内容 (2019-1-12 15:46):
我举的例子可能不够多。譬如:大于20且小于40返回三级,大于40小于70返回四级。也就是说一旦上一级范围满足就忽略后面的

补充内容 (2019-1-12 15:53):
我在考虑可以通过改变数组的方法来折中计算,加入这个数字小于中间的数值就舍弃这一个成员后面所有的成员,如果大于则舍弃前面所有的成员

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (26/26)
发表于 2019-1-12 15:22:01 | 显示全部楼层   江苏省苏州市
墨影0620 发表于 2019-1-12 15:54
看着调试结果应该差不多。源码能发一下么?

新建 易程序.e (2.88 KB, 下载次数: 5)

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (5/5)

签到天数: 29 天

发表于 2019-1-12 15:34:13 | 显示全部楼层   河南省平顶山市
如果 大于4 小于700 呢
回复

使用道具 举报

结帖率:94% (131/139)

签到天数: 1 天

 楼主| 发表于 2019-1-12 15:50:37 | 显示全部楼层   山东省青岛市
qmhmsn 发表于 2019-1-12 15:34
如果 大于4 小于700 呢

我的意思是这么多数字是从上到下的顺序,每个数字下面的数字必然比上面的数字大且至少大1.

一旦某个范围条件满足,后面的就不进行考虑了。也就是说假设某个数字为75

等级设定为

一级=20
二级=30
三级=50
四级=70
五级=90
六级=120
七级=200

那么久返回五级

说白了就是从数据里向上寻找一个最接近的数值。
回复

使用道具 举报

结帖率:100% (26/26)
发表于 2019-1-12 15:51:18 | 显示全部楼层   江苏省苏州市

不知道是不是这个意思




回复

使用道具 举报

结帖率:94% (131/139)

签到天数: 1 天

 楼主| 发表于 2019-1-12 15:54:12 | 显示全部楼层   山东省青岛市
易正易则 发表于 2019-1-12 15:51
不知道是不是这个意思

看着调试结果应该差不多。源码能发一下么?
回复

使用道具 举报

结帖率:94% (131/139)

签到天数: 1 天

 楼主| 发表于 2019-1-12 16:00:44 | 显示全部楼层   山东省青岛市

结果是对了,但是我不想从第一个值挨个判断。。。
回复

使用道具 举报

结帖率:94% (131/139)

签到天数: 1 天

 楼主| 发表于 2019-1-12 16:02:48 | 显示全部楼层   山东省青岛市

不过想想如果用户设置有问题的话还是这个办法容错率比较高(你这个方案我是会的)

譬如用户设置{12,30,90,80,20,10}
这样的,你写的那个的话判断到90以后就自动忽略掉后面违规的了

点评

没明白你的意思   江苏省苏州市  发表于 2019-1-12 16:04
回复

使用道具 举报

结帖率:94% (131/139)

签到天数: 1 天

 楼主| 发表于 2019-1-12 16:18:24 | 显示全部楼层   山东省青岛市

想了下,这个等级用户不可能设置太多。几百个也就是很多了。

而且你那种如果出现用户不按规则设置还可以避免错误。

例如:原本应该是

10,50,60,90,100,500,900,2000

结果用户设置为

10,50,60,90,100,80,70,20

点评

然后重定义一下数组   江苏省苏州市  发表于 2019-1-12 16:20
就算用户乱设置,你排序一下不就好咯   江苏省苏州市  发表于 2019-1-12 16:20
排序一下即可   江苏省苏州市  发表于 2019-1-12 16:19
回复

使用道具 举报

结帖率:94% (131/139)

签到天数: 1 天

 楼主| 发表于 2019-1-12 16:32:59 | 显示全部楼层   山东省青岛市

谢谢,你解决了我另一个问题。我竟然忘记了排序。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表