某游戏的排行榜系统需要实时更新玩家分数。每次只有一个玩家的分数发生变化,排行榜已经是按分数降序排列的。现在需要将更新后的玩家调整到正确位置。下面的函数 updateRanking() 要实现上述功能,则两处横线上应分别填写( )。 #include using namespace std; struct Player { string name; int score; }; // 玩家索引playerIdx的分数刚刚更新,需要调整位置 void updateRanking(Player players[], int size, int playerIdx) { Player updatedPlayer = players[playerIdx]; if (playerIdx > 0 && updatedPlayer.score > players[playerIdx - 1].score) { int i = playerIdx; while (i > 0 && updatedPlayer.score > players[i - 1].score) { // 第一空 players[i] = players[i - 1]; i--; } players[i] = updatedPlayer; } else if (playerIdx < size - 1 && updatedPlayer.score < players[playerIdx + 1].score) { int i = playerIdx; while (i < size - 1 && updatedPlayer.score < players[i + 1].score) { // 第二空 players[i] = players[i + 1]; i++; } players[i] = updatedPlayer; } }
A. i > 0 && updatedPlayer.score > players[i - 1].score i 0 && updatedPlayer.score > players[i - 1].scoreCopy
C. i > 0 && updatedPlayer.score 0 && updatedPlayer.score players[i + 1].scoreCopy
正确答案:A
试卷来源:202512 CCF-GESP编程能力等级认证C++四级真题