gpt4 book ai didi

java - 为什么 println 在 for 循环中只打印一次并且输出错误的值?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:52:38 24 4
gpt4 key购买 nike

我必须创建一个代码,在给定多边形名称及其顶点坐标的情况下打印周长。即使我更改输入值,它也始终打印 5.0 。我做错了什么?

我尝试使用 for 循环并打印三角形每条边的长度,但结果仍然是 5.0 并且只打印了一次。现在我尝试在每一步打印递归和但没有结果

public static void main(String[] args) {
int i;
double result = 0;
double x1 = Double.valueOf(args[1]);
double y1 = Double.valueOf(args[2]);
Punto p1 = new Punto(x1, y1);
double x2 = Double.valueOf(args[3]);
double y2 = Double.valueOf(args[4]);
Punto p2 = new Punto(x2, y2);
double x3 = Double.valueOf(args[5]);
double y3 = Double.valueOf(args[6]);
Punto p3 = new Punto(x3, y3);
Punto[] punti = {p1, p2, p3};
Poligono A = new Poligono(args[0], punti);
for (i = 0; i < punti.length - 1; i++) {
double xa = Punto.getX(punti[i++]);
double xb = Punto.getX(punti[i]);
double ya = Punto.getY(punti[i++]);
double yb = Punto.getY(punti[i]);
result = result + Math.sqrt(Math.pow(Math.abs(xa - xb), 2) + Math.pow(Math.abs(ya - yb), 2));
System.out.println(result);
}
}

(Punto 表示点)正确答案是 12,但它总是打印 5 并且只打印一次

最佳答案

您可能应该将 double xa = Punto.getX(punti[i++]); 替换为 double xa = Punto.getX(punti[i + 1]);这样您就不会修改 i,因为它用于遍历数组。

关于java - 为什么 println 在 for 循环中只打印一次并且输出错误的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55689123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com