我已经做了一个程序,我插入了一个三角形的两条边的长度和它们之间的角度。程序将使用这些信息来告诉我,三角形是等边、等腰还是等边的对立面。
如果您知道长度a,b&x(它们之间的角度),则可以使用以下公式计算最后一侧:C= sqrt(a_a + b_b -2*a_b_cos(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");
}
*/
}
}发布于 2019-09-07 08:05:01
我认为java没有为PI使用确切的数字,因此这是行不通的。在我的书中,它建议我使用abs值和<表示一个小值。
埃格斯:e = 1e-10 if (Math.abs(a-b) < e
https://stackoverflow.com/questions/57831828
复制相似问题