输入法调试bug记录

  1. 排序时候,
    排序的权重计算 temp_arr[i]=(output[i].n_py)*(12/(output[i].n_ch))+output[i].n_py-strlen(input_pystr)其中(output[i].n_py/(output[i].n_ch)计算的平均每个字多少个拼音字母,但是output[i].n_ch=1或2或3或4,这样除容易丢掉余数,间接降低权重,于是增加权重,减去剩余拼音串output[i].n_py-strlen(input_pystr),但是有个新的问题,有些单字母单字前面1/1*12=12,当剩余字母超过12,这么计算出现负数,负数的补码比较大,权重就出问题。
    解决办法:前面倍数12改为24,改为temp_arr[i]=(output[i].n_py)*(24/(output[i].n_ch))+output[i].n_py-strlen(input_pystr)因为最大strlen(input_pystr)=25,这样就避免负数,两个权重平均每个字多少个拼音字母剩余拼音串都用上了。

  2. 索引库,用定义unsigned char cy1len,但是实际计算cy1len=399=0x18F,得到的cy1len=0x8F,与实际不符
    解决办法:用unsigned int cy1len定义,有时候要根据数据大小合理定义数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值