首页 > 解决方案 > 为什么我的代码不起作用 - 终端上说什么?

问题描述

您好,我正在尝试运行此代码>>

public class test {
public static void main(String[] args) {
    double[] p1={2,3,4};
    double[] p2={2,3};
    int maxlentharr;
    if (p1.length > p2.length) {
           maxlentharr = p1.length;
    } else {
           maxlentharr = p2.length;
    }
    double[] Array = new double[maxlentharr];
    for (int i = 0; i < Array.length; i++) {
           Array[i] = 0;
    }

    for (int k = 0; k < p1.length; k++) {
           for (int j = 0; j < p2.length; j++) {
                  Array[j + k] += (p1[j] * p2[j]);

           }
    }
    for (double element: Array) {
           System.out.println("------------------");
           System.out.println(element);
    }

} }

但它似乎不起作用,我在代码上没有看到任何错误,但我在终端上看到了什么>>

看到终端给她发消息


[![这里][2]][2]

标签: javavisual-studio-codeterminalsyntax-error

解决方案


  1. 这里有一个问题:p1[j]

    for (int k = 0; k < p1.length; k++) {
        for (int j = 0; j < p2.length; j++) {
            Array[j + k] += (p1[j] * p2[j]);
        }
    }
    

    您正在使用为 p2 创建的索引 [j] 在 p1 上循环。这可能会导致错误。我想你想做的是 p1[k] * p2[j]

  2. 另一个问题可能是数组维度不是 j+k 而实际上只是 j 和 k 之间的最大维度


推荐阅读