- 论坛徽章:
- 0
|
本帖最后由 okocha-jay 于 2010-02-10 10:08 编辑
大家都很热心,非常感谢。
才注册没几天,以后我回常来的。
- //这是等级0到9对应的最低分数线;比如,得分是2万,那么等级是1;因为超过了1万分(等级1,也就数组下标),没达到3万分(下标2)
- const unsigned int levels[10] = {0, 10000, 30000, 60000, 100000, 150000, 210000, 280000, 360000, 450000};
- 求一个函数,根据输入分数,得到对应等级
- int getLevel(unsigned int score);
- 我写了一个,谢谢大家的帮助
- unsigned short getLevel(unsigned int score )
- {
- int low = 0, high = 9;
- int mid;
- while ( true )
- {
- mid = (low + high ) / 2;
- if ( score >= levels[mid])
- {
- if ( mid==9 || score < levels[mid+1])
- return mid;
- else
- low = mid + 1;
- }
- else//不可能是mid等级
- {
- assert(mid>0);
- high = mid - 1;
- }
- }
- }
复制代码 |
|