Java не обеспечивает ожидаемый результат для выражения - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь реализовать следующее выражение s = ut + ½at², но оно не дает ожидаемого результата для u = 2, a = 2, t = 1 => s = 3.00 m

Я пробовал перемещать скобки / скобки, но это не исправляетпроблема ...

import java.util.Scanner;
public class Exercise4 {
    public static void main(String args[]) {
        float speed, time, acceleration, distance;
        Scanner input = new Scanner(System.in);
        System.out.print("Please enter the initial speed: ");
        speed = input.nextFloat();
        System.out.print("Please enter the acceleration: ");
        time = input.nextFloat();
        System.out.print("Please enter the time spent traveling: ");
        acceleration = input.nextFloat();
        distance = (speed * time) + (((0.5 f * acceleration) * time) * time);
        System.out.println("The object traveled a distance of " + String.format("%.2f", distance) + " metres");
    }
}

Другие ожидаемые результаты, которые работают:

u = 0, a = 0, t = 0 => s0 .00 m
u = 0, a = 1, t = 1 => s0 .50 m
u = 1, a = 1, t = 1 => s1 .50 m

1 Ответ

3 голосов
/ 04 октября 2019

Вы испортили порядок ваших входов. Вы запрашиваете значение ускорения, но назначаете этот вход переменной time.

System.out.print("Please enter the acceleration: ");
        time = input.nextFloat();

Просто измените порядок, и он будет работать просто отлично.

import java.util.Scanner;

public class Exercise4 {
    public static void main(String args[]) {
        float speed, time, acceleration, distance;
        Scanner input = new Scanner(System.in);
        System.out.print("Please enter the initial speed: ");
        speed = input.nextFloat();
        System.out.print("Please enter the acceleration: ");
        acceleration = input.nextFloat();
        System.out.print("Please enter the time spent traveling: ");
        time = input.nextFloat();
        distance = (speed * time) + (((0.5f * acceleration) * time) * time);
        System.out.println("The object traveled a distance of " + String.format("%.2f", distance) + " metres"); 
    }
}
...