亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

編寫一個程序,提示輸入三角形的邊長并報告三個角

編寫一個程序,提示輸入三角形的邊長并報告三個角

叮當貓咪 2022-10-20 17:22:55
編寫一個程序,提示輸入三角形的邊長并報告三個角。我沒有得到等于180的角度,并且在某些情況下,我得到NaN的某些角度值。我的代碼如下所示public static int getSideA() {    System.out.println("What is the length of side a?");    Scanner console = new Scanner(System.in);    int a = console.nextInt();    return a;}public static int getSideB() {    System.out.println("What is the length of side b?");    Scanner console = new Scanner(System.in);    int b = console.nextInt();    return b;}public static int getSideC() {    System.out.println("What is the length of side C");    Scanner console = new Scanner(System.in);    int c = console.nextInt();    return c;}public static void giveSides(int a, int b, int c) {    double angleA = Math.toDegrees(Math.acos((a^2 - b^2 - c^2) / (-2.0 * c * b)));    double angleB = Math.toDegrees(Math.acos((b^2 - a^2 - c^2) / (-2.0 * a * c)));    double angleC = Math.toDegrees(Math.acos((c^2 - a^2 - b^2) / (-2.0 * a * b)));    System.out.println("The three angles are: " + angleA + " " + angleB + " " + angleC);}public static void main(String[] args) {    int a = getSideA();    int b = getSideB();    int c = getSideC();    giveSides(a, b, c);}
查看完整描述

1 回答

?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

問題在于這三行:


double angleA = Math.toDegrees(Math.acos((a^2 - b^2 - c^2) / (-2.0 * c * b)));

double angleB = Math.toDegrees(Math.acos((b^2 - a^2 - c^2) / (-2.0 * a * c)));

double angleC = Math.toDegrees(Math.acos((c^2 - a^2 - b^2) / (-2.0 * a * b)));

^2并不意味著“平方”。它的意思是“按位異或 2”。您需要使用a*a或Math.pow(a, 2)表示“平方”。


所以這三行應該是:


double angleA = Math.toDegrees(Math.acos((a*a - b*b - c*c) / (-2.0 * c * b)));

double angleB = Math.toDegrees(Math.acos((b*b - a*a - c*c) / (-2.0 * a * c)));

double angleC = Math.toDegrees(Math.acos((c*c - a*a - b*b) / (-2.0 * a * b)));

此外,這些getSideX方法可以合并為一個,并且可以將掃描儀提取到類級別:


static Scanner console = new Scanner(System.in);


public static int getSide(String name) {


    System.out.println("What is the length of side " + name + "?");


    int a = console.nextInt();

    return a;

}

您的main方法現在如下所示:


public static void main(String[] args) {


    int a = getSide("A");

    int b = getSide("B");

    int c = getSide("C");


    giveSides(a, b, c);

}


查看完整回答
反對 回復 2022-10-20
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號