这段代码试图将数组中的元素循环右移一位,但实现有逻辑错误。当前代码在循环中错误地覆盖了数组元素,导致结果不符合预期。 - 你的循环从 i=0 到 i<size-1,当 i=0 时把 a[0] 存到了 a[9],但紧接着在 i=1 时又把 a[1] 覆盖为 a[0](此时 a[0] 已被修改?注意 a[0] 在 i=0 时并未被改变,但后续赋值会丢失原始值)。实际上,你需要在移动元素之前保存最后一个元素的值,然后从后往前依次移动,而不是从前往后。 - 思考一下:如果要从右向左移动,应该从数组的哪一端开始处理,才能避免覆盖尚未移动的原始数据?