Java未提供表达式的预期结果
我试图实现以下表达式s=ut+½at²,但它没有给出u=2、a=2、t=1=>s=3.00m的预期结果 我尝试过在括号/括号中移动,但它无法解决问题 导入java.util.Scanner; 公开课练习4{ 公共静态字符串参数[]{ 浮动速度、时间、加速度、距离; 扫描仪输入=新的ScannerSystem.in; System.out.Print请输入初始速度:; 速度=input.nextFloat; System.out.Print请输入加速度:; 时间=input.nextFloat; System.out.Print请输入旅行时间:; 加速度=input.nextFloat; 距离=速度*时间+0.5 f*加速度*时间*时间; System.out.PrintLn对象移动的距离为+字符串.format%.2f,距离+米; } } 其他可行的预期结果包括:Java未提供表达式的预期结果,java,operator-precedence,Java,Operator Precedence,我试图实现以下表达式s=ut+½at²,但它没有给出u=2、a=2、t=1=>s=3.00m的预期结果 我尝试过在括号/括号中移动,但它无法解决问题 导入java.util.Scanner; 公开课练习4{ 公共静态字符串参数[]{ 浮动速度、时间、加速度、距离; 扫描仪输入=新的ScannerSystem.in; System.out.Print请输入初始速度:; 速度=input.nextFloat; System.out.Print请输入加速度:; 时间=input.nextFloat;
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
你把输入的顺序弄乱了。 您要求的是加速度值,但将该输入指定给时间变量
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");
}
}
它没有给出预期的结果,因此,您的代码可能是错误的。你提供的输入是什么,你期望的输出是什么,你得到了什么?你调试过你的代码吗?旁白:不要用浮点数进行计算。使用double。@AndyTurner为什么将加速度保存在时间变量中,而将时间保存在加速度变量中。@AndyTurner您是谁,可以说出所需的精度?浮点数据类型的存在是有原因的。