我的任务是创建一个程序,仅使用输入 N 辆汽车的 for 循环和数学函数,每次迭代都会获得汽车到达终点的时间,最终输出需要是第一个到达终点的输出,并且第二个,意思是两个最低的时间。
我创建了一个程序:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("enter total cars: ");
int cars = sc.nextInt();
double first = 0, second = 0;
int car1 = 1, car2 = 1;
for (int i = 1; i <= cars; i++) {
System.out.println("enter car number " + i + " speed:");
double speed = sc.nextDouble();
if (i == 1) {
first = speed;
second = speed;
}
if (speed < first) {
second = first;
first = speed;
car2 = car1;
car1 = i;
} else {
if (speed < second) {
car2 = i;
second = speed;
}
}
}
System.out.println("car number one is " + car1 +" with speed of " + first);
System.out.println("car number two is " + car2 +" with speed of " + second);
}
}
我遇到的问题是如何启动第一个和第二个 var,因为它们不能设置为 0,因为我需要检查我得到的速度是否低于第一个或第二个。我可能在第一次迭代中尝试设置第一和第二速度以开始有一些东西,但它仍然存在错误,所以我想知道如何修复它?提前谢谢。