You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java数组按指定规则修改并更新原数组的实现疑问

解决方案

你的代码目前仅实现了结果打印,但未对原数组进行修改,还存在一个核心问题:你将z赋值为中间元素的数值(即3),而非中间元素的索引——这在当前数组中碰巧能运行,但换其他长度的数组就会出错。以下是修正后的代码,可实现修改原数组并输出目标结果:

package javap;

public class Arraym {
    // 先修改原数组,再打印结果
    static void modifyAndPrint(int arr[]) {
        // 计算中间元素的索引,而非元素值
        int midIndex = arr.length / 2;
        // 中间元素右侧的起始索引
        int rightStart = midIndex + 1;

        // 遍历中间元素之前的位置,计算并替换原数组值
        for (int i = 0; i < midIndex; i++) {
            // 对应右侧元素的索引为 rightStart + i
            arr[i] = arr[i] + arr[rightStart + i];
        }

        // 遍历打印整个数组,元素间用空格分隔
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }

    public static void main(String[] args) {
        int arr[] = {1,2,3,4,5};
        modifyAndPrint(arr);
        // 此时原数组已被修改,可通过以下代码验证:
        // System.out.println(Arrays.toString(arr)); // 输出 [5, 7, 3, 4, 5]
    }
}

关键修改说明:

  • 用索引替代元素值:通过midIndex = arr.length / 2获取中间元素的索引(此处为2),而非取元素值3,让逻辑适配所有奇数长度的数组。
  • 直接修改原数组:在循环中直接给arr[i]赋值,将求和结果存入原数组对应位置,而非仅计算并打印临时值。
  • 右侧元素索引匹配:中间元素右侧第一个元素的索引是midIndex + 1,前半部分第i个元素对应的右侧元素索引为rightStart + i,完美匹配题目要求的arr[0]+arr[3]、arr[1]+arr[4]对应关系。
  • 打印格式优化:打印时给每个元素后添加空格,保证输出格式为5 7 3 4 5。

运行这段代码后,原数组会被直接修改为目标数组,同时输出符合要求的结果。

内容的提问来源于stack exchange,提问作者Siddhiraj Ranaware

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 00:40:15