我做了一个程序,我在其中插入三角形的两条边的长度和它们之间的角度。程序应使用此信息告诉我三角形是等边的、等腰的还是等边的。
如果你知道长度a,b和x(它们之间的角度(,你可以使用以下公式计算最后一边:c = sqrt(aa + b b-2*abcos(x((
我不知道为什么它不起作用。我在数学上正确地完成了这一切。我相信我错误地使用了Java语言,因此我无法让它工作。
我认为错误在于第一个"如果"的事情。所以我现在尝试禁用其他两个,以便能够尝试程序是否可以识别三角形是否至少是等边的,但是它不能。
import javax.swing.*;
public class Upp46 {
public static void main(String[] arg){
String a, b, x;
a = JOptionPane.showInputDialog("Length of a");
b = JOptionPane.showInputDialog("Length of b");
x = JOptionPane.showInputDialog("Angle between a & b");
/* "x must be converted to radians"
before it can be applied */
double ai, bi, xi, c;
ai = Double.parseDouble(a); //Length of a
bi = Double.parseDouble(b); //Length of b
xi = Double.parseDouble(x); //Angle x in degrees
xi = xi * (Math.PI/180); //Converts from degree to Radians
c = Math.sqrt(ai*ai + bi*bi -2*ai*bi*Math.cos(xi)); //Length of c
if (ai == bi && c == ai){
JOptionPane.showMessageDialog(null, "The triangle is equilateral");
}
/*else if (ai == bi && c != bi ||
ai == c && bi !=c ||
bi == c && c !=bi){
JOptionPane.showMessageDialog(null, "Triangeln är likbent");
}
else {
JOptionPane.showMessageDialog(null, "Triangeln är oliksidig");
}
*/
}
}
我认为java没有使用PI的确切数字,因此这是行不通的。在我的书中,它建议我改用abs值和<来获得较小的值。>
埃兹:e = 1e-10
if (Math.abs(a-b) < e