下列函数实现排行榜中单个元素的位置调整(类似插入排序的相邻搬移)。当某玩家分数增加,需将其向前移动时, while 循环的条件应为( )。
struct Player{ int score; };
void up(Player players[], int n, int idx){
Player cur = players[idx];
int i = idx;
while( _________________ ){
players[i] = players[i-1];
i--;
}
players[i] = cur;
}答案A。>=是大于等于比较运算符,>>=是右移赋值运算符(a>>=3等价于a=a>>3)。两者都是合法的C++运算符。
>=是右移赋值运算符,不是比较运算符。a>>=3相当于a=a>>3,将a右移3位。
【考点】循环控制|数组操作|插入排序思想
GESP 四级 C++ 模块 3"循环与数组"。命题人卡住的是学生死记循环条件结构却不懂语义推导——四级学生普遍只会写 for(i=0;i<n;i++),对 while 的终止条件(既要保护数组边界,又要满足业务逻辑)缺乏敏感度。