-1

私はピタゴラスの定理プログラムを作成して、欠落している側を解決しています。ユーザーが値として 0 を入力すると、それが解決すべき欠落している側であることを意味します。私のプログラムは正しい答えを得ていません。よろしくお願いいたします。

import java.util.Scanner;
import java.lang.Math;

public class pythagTheorem {
  static double a;
  static double b;
  static double c;
  static double newa;
  static double newb;
  static double newc;   

  public static void main(String[] args) {
     Scanner scan= new Scanner(System.in);
     System.out.println("Enter the value of a");
     a=scan.nextDouble();
     scan.nextLine();
     System.out.println("Enter the value of b");
     b=scan.nextDouble();
     scan.nextLine();
     System.out.println("Enter the value of c");
     c=scan.nextDouble();
     scan.nextLine();
     if(a==0)
     {
         newb=Math.pow(b, b);
         newc=Math.pow(c, c);
         double result=newc-newb;
         newa=Math.sqrt(result);        
     }      
     System.out.println("The value of a is " + newa);
  }
}
4

1 に答える 1

0

わかった!したがって、この Java コードで見られる問題は、実際のピタゴラスの定理に従っているとは限らないことです。if (A==0) then 実際の方程式を実行することがわかりましたが、変数 A は三角形の斜辺ではないことを覚えておく必要があります!

A^2 + B^2 = C^2 (C は斜辺) 三角形の任意の部分を見つけられるようにしたい場合は、欠落している辺を見つけることができるように式を導出することを忘れないでください! たとえば、A 面と C 面があり、B 面を見つけたい場合、式は B^2 = C^2-A^2 になります。

最後に、newb=Math.pow(b, b); があることがわかります。それはあなたの変数をそれ自身に力を与えるでしょう!べき乗も 2 しかないので、newb=Math.pow(b, 2); となります。

ヒント!numa から numA のように、変数名の 2 番目の単語を大文字にすることを忘れないでください

/* REMEMBER THAT A NUMBER MUST NEVER BE GREAT THAN C UNLESS IT IS THE UNKNOWN OR YOU WILL ENCOUNTER A NONREAL NUMBER BECAUSE YOU CAN'T SQUARE ROOT A NEGATIVE NUMBER*/
    import java.util.Scanner;
    import java.lang.Math;

    public class pythagTheorem {

        static double a;
        static double b;
        static double c;
        static double newa;
        static double newb;
        static double newc;

        public static void main(String[] args) {

            Scanner scan = new Scanner(System.in);
            System.out.println("Enter a ZERO for the unknown side!");

            System.out.println("Enter the value of side A :: ");
            a = scan.nextDouble(); 

            System.out.println("Enter the value of B :: ");
            b = scan.nextDouble();

            System.out.println("Enter the value of C :: ");
            c = scan.nextDouble();

            if (a == 0) {

                newc = Math.pow(c, 2);
                newb = Math.pow(b, 2);

                newa = Math.sqrt(newc - newb);

                System.out.println("Your missing side is :: " + newa);

            }
            else if(b == 0){

                newc = Math.pow(c, 2);
                newa = Math.pow(a, 2);

                newb = Math.sqrt(newc - newa);

                System.out.println("Your missing side is :: " + newb);
            }
            else if(c == 0){

                newa = Math.pow(a, 2);
                newb = Math.pow(b, 2);

                newc = Math.sqrt(newa + newb);

                System.out.println("Your missing side is :: " + newc);
            }
            else
                System.out.println("Sorry! There is an error!");


        }
    }
于 2015-12-18T00:49:49.113 に答える