【问题标题】:why my code not work -what says on the terminal?为什么我的代码不起作用 - 终端上说什么?
【发布时间】:2020-11-29 00:19:56
【问题描述】:

你好,我正在尝试运行这段代码>>

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]

【问题讨论】:

    标签: java visual-studio-code terminal syntax-error


    【解决方案1】:
    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 之间的最大维度

    【讨论】:

    • @rioV8 感谢您的编辑,我在修复它时遇到了问题
    【解决方案2】:

    数组[j + k] += (p1[j] * p2[j])

    应该是

    数组[j + k] += (p1[k] * p2[j])

    【讨论】:

      猜你喜欢
      • 2014-01-23
      • 2013-08-06
      • 2016-01-23
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多