Java kezdő kérdés. Miért nem működik így?
package elso;
import java.util.Scanner;
public class launcher {
public static void main(String[] args) {
// TODO Auto-generated method stub
masodfoku m = new masodfoku();
Scanner sc = new Scanner(System.in);
System.out.println("a= ");
m.a = sc.nextFloat();
System.out.println("b= ");
m.b = sc.nextFloat();
System.out.println("c= ");
m.c = sc.nextFloat();
float[] er = m.eredmeny();
System.out.println("x1 = " + (float) er[1]);
System.out.println("x2 = " + (float) er[2]);
sc.close();
}
}
és a mosodfokút számoló class:
package elso;
public class masodfoku {
public float a;
public float b;
public float c;
public float gyokalatt;
public float x1;
public float x2;
public float[] eredmeny() {
gyokalatt = (float) Math.sqrt((b*b)-(4*a*c));
x1 = (float) ((-b+gyokalatt)/(2*a));
x2 = (float) ((-b-gyokalatt)/(2*a));
return new float [] {x1,x2};
}
}
Egyébként olyan számokat adsz meg aminek van eredménye?
Mert ha random írogatsz be számokat simán lehet, hogy komplex az eredmény
x1 = NaN
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at elso.launcher.main(launcher.java:20)
Amúgy ez a 20. sor:
System.out.println("x2 = " + (float) er[2]);
mert a gyökvonásnál nem akarta elfogadni így inkább már mindenhová betettem a float -ra kényszerítést. Viszont most ki Sout -oztam a részeredményeket és gyanús,hogy az itteni gyökvonással van a gond:
gyokalatt = (float) Math.sqrt((b*b)-(4*a*c));
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!