2016-05-02 3 views
0

Я пытаюсь сделать математическую функцию: f (x) = x - 3/(x * x) - 4. У пользователя есть значение для x (x равно " a "), но я не знаю, как заставить его использовать x в функции.java математическая функция f (x)

public static void main(String[] args) { 
    double z = f(1); 
    System.out.println("Answer: " + z); 
} 

public static double f(double x) { 
    double y = 0; 
    String a = ""; 
    Scanner reader = new Scanner(System.in); 
    System.out.println("Enter value for 'x': "); 
    a = reader.nextLine(); 
    y = a - 3/(a * a) - 4); 
    return y; 
} 
+2

вы, вероятно, хотите 'reader.nextDouble()' не reader.nextLine() – 3kings

+1

и просто сделать локальную переменную 'двойной а = 0;'. Также избавитесь от параметра, который вы его отправили ..., который не имеет смысла в этом методе – 3kings

+1

И у вас должно быть такое же количество ')', как у вас есть '(' в выражении. –

ответ

6

То, что вы ищете, чтобы принять ввод пользователя является nextDouble(), а не nextLine, которая возвращает String и не double. Кроме того, было бы разумнее обрабатывать вход пользователя за пределами function и передавать входные данные в качестве аргумента. Так это будет выглядеть примерно так:

public static void main(String[] args) { 
    double a; 
    Scanner reader = new Scanner(System.in); 
    System.out.println("Enter value for 'x': "); 
    a = reader.nextDouble(); 
    double z = f(a); 
    System.out.println("Answer: " + z); 
} 

public static double f(double x) { 
    return x - 3/(x * x) - 4; 
} 
+2

очень приятно, что вы можете просто «вернуть» (x - 3/(x * x) - 4); '. – 3kings

Смежные вопросы