こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaで判別式のプログラミングを作りたいのですが

javaで二次方程式ax2+bx+c=0が,2つの異なる実数解をもつ,実数の重解をもつ,実数解をもたないのいずれであるかを判別するプログラムを作りたいのですが、

何度実行しても正しい答えが出てくれません。なぜでしょうか?
import java.util.Scanner;


class Kadai {

public static void main(String args[]) {

Scanner sc = new Scanner(System.in);

int a,b,c,d;

System.out.println("二次方程式y=ax^2+bx+cの解を判別します。");

System.out.print("aを入力してください。:");

a = sc.nextInt();

System.out.print("bを入力してください。:");

b = sc.nextInt();

System.out.print("cを入力してください。:");

c = sc.nextInt();

d=b^2-4*a*c;

System.out.println("y="+a+"x^2+"+b+"x+"+c+"の判定は以下の通りです。");

if(d>0){

System.out.println("判別式D>0");

System.out.print("2つの異なる実数解をもつ。");

}

if(d==0){

System.out.println("判別式D=0");

System.out.print("実数の重解をもつ。");

}

if(d<0){

System.out.println("判別式D<0");

System.out.print("実数解をもたない。");

}

}

}

これを実行すると下の画像のように異なる結果が出てしまいます。
この場合、正しくは実数の重解を持つですよね?

どこが間違っているか指摘してくださると嬉しいですm(_ _)m

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2014-11-07 15:17:52

QNo.8816903

困ってます

質問者が選んだベストアンサー

> d=b^2-4*a*c;

Java における ^ は、べき乗を求める演算子ではありません。

投稿日時 - 2014-11-07 15:28:31

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

~は2乗ではありません。

誤 d=b^2-4*a*c;
正 d=b*b-4*a*c;

投稿日時 - 2014-11-07 15:39:31

ANo.1

d=b^2-4*a*c;

投稿日時 - 2014-11-07 15:25:59

あなたにオススメの質問