我必須創(chuàng)建一個代碼,給定多邊形名稱及其頂點坐標(biāo),打印周長。即使我更改輸入值,它也總是打印 5.0 。我究竟做錯了什么?我嘗試使用 for 循環(huán)并打印三角形每一邊的長度,但結(jié)果仍然是 5.0 并且只打印了一次?,F(xiàn)在我嘗試在每一步打印遞歸和但沒有結(jié)果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 并且只打印一次
2 回答

繁花如伊
TA貢獻(xiàn)2012條經(jīng)驗 獲得超12個贊
您可能應(yīng)該替換double xa = Punto.getX(punti[i++]);
為,double xa = Punto.getX(punti[i + 1]);
這樣您就不會修改i
它,因為它用于遍歷數(shù)組。

精慕HU
TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊
我想補充一點,當(dāng)發(fā)生明顯不合理的事情時,請嘗試調(diào)試您的代碼(例如,逐步執(zhí)行這些行)。你會發(fā)現(xiàn)機器總是按照我們說的去做。有時我們想宣布一項特定的任務(wù),但實際上,我們無意中宣布了其他事情。
添加回答
舉報
0/150
提交
取消