2014-12-07 3 views
0

Я пытаюсь сделать код, который принимает набор чисел, запускает их через квадратичную формулу и возвращает ответ, который затем печатается.Возвращение двойного/целого из метода в Java?

P.S. Я новичок в java, делая это, чтобы учиться.

Scanner firstCoeff = new Scanner(System.in); 
int ax = firstCoeff.nextInt(); 
firstCoeff.close(); 
Scanner secCoeff = new Scanner(System.in); 
int bx = secCoeff.nextInt(); 
secCoeff.close(); 
Scanner finConstant = new Scanner(System.in); 
int c = finConstant.nextInt(); 

Quadratic_Formula work = new Quadratic_Formula(); 
work.posquadForm(ax, bx, c); 
work.negquadForm(ax, bx, c); 

System.out.println("Your answer is" + work.posquadForm() +"or" + work.negquadForm() +"."); 

Вот формула класса:

public class Quadratic_Formula { 
public double posquadForm(int ax, int bx, int c) { 
    int b; 
    b = (bx); 
    int a; 
    a = (ax); 

    double posanswer; 
    posanswer = ((-b) - Math.sqrt((b^2) + ((-4) * a * c))/(2 * a)); 
    return posanswer; 
} 
public double negquadForm(int ax, int bx, int c) { 
    int b; 
    b = (bx); 
    int a; 
    a = (ax); 

    double neganswer; 
    neganswer = ((-b) + Math.sqrt((b^2) + ((-4) * a * c))/(2 * a)); 
    return neganswer; 
} 
+0

И какая проблема? –

+0

«posquadForm() в Quadratic_Formula нельзя применить к: * списку целых чисел, переданных в метод». Согласно идее. – WaffleMan0310

+0

'public double posquadForm (int ax, int bx, int c)' принимает 3 целых числа, но когда вы вызываете 'System.out.println (« Ваш ответ «+ work.posquadForm() +» или «+ work». negquadForm() + "."); ', вы не передаете никаких целых чисел. – Gosu

ответ

2

Изменения в

Quadratic_Formula work = new Quadratic_Formula(); 
double posAnswer = work.posquadForm(ax, bx, c); 
double negAnswer = work.negquadForm(ax, bx, c); 

System.out.println("Your answer is" +posAnswer +"or" + negAnswer +"."); 

Ваши функции posquadForm & negquadForm уже вычислили ответы, вам просто нужно хранить их в переменных и печать их?

0

Ваш метод объявлен как таковой:

public double posquadForm(int ax, int bx, int c) { 

Так что в те переменные ...

int valueForAx = 2; 
int valueForBx = 3; 
int valueForC = 4; 
System.out.println("Your answer is " + work.posquadForm(valueForAx, valueForBx, valueForC)); 
0

примечание стороны, вместо:

int b; 
b = (bx); 
int a; 
a = (ax); 

вы просто использовать :

int b = bx; 
int a = ax; 

И наоборот, ответ Alex K заключается в том, чтобы не принимать никаких параметров, просто иметь дело с ax, bx и c как глобальными (предполагая, что класс формулы quad является внутренним классом).

public double posquadForm() { 

    double posanswer; 
    posanswer = ((-bx) - Math.sqrt((bx^2) + ((-4) * ax * c))/(2 * ax)); 
    return posanswer; 
} 
Смежные вопросы