-
排序时候,
排序的权重计算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,
这样就避免负数,两个权重平均每个字多少个拼音字母和剩余拼音串都用上了。 -
索引库,用定义
unsigned char cy1len
,但是实际计算cy1len=399=0x18F
,得到的cy1len=0x8F
,与实际不符
解决办法:用unsigned int cy1len
定义,有时候要根据数据大小合理定义数据类型
输入法调试bug记录
最新推荐文章于 2021-02-01 11:10:20 发布