m0_67726816 2022-04-04 10:42 采纳率: 100%
浏览 69
已结题

假设以下所写代码用于将数组中的内容进行反转,解释为什么它是错误的,以及如何进行修正

int[]list = {1, 2, 3, 5, 4}; for ( int i = 0, j = list.length - 1; i < list.length; i++, j-- ) { int temp = list[i]; list[i] = list[j]; list[j] = temp;

  • 写回答

1条回答 默认 最新

  • a5156520 2022-04-04 10:57
    关注

    这里的错误在于结束条件还需要加个i<j, 只有在置换前面下标为i的元素下标小于后面元素的下标j时,
    才需要进行置换,当i>j时,说明元素已完成了前后的置换。可以修改为如下:

    
    int[]list = {1, 2, 3, 5, 4};
     for ( int i = 0, j = list.length - 1; i < list.length&&i<j; i++, j-- )
     {
     int temp = list[i]; 
    list[i] = list[j];
     list[j] = temp;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月26日
  • 已采纳回答 6月18日
  • 创建了问题 4月4日