首页 > 解决方案 > 在 for 循环中查找数字的差异

问题描述

我是 java 的初学者,想知道如何找到输入到 for 循环中的数字之间的最大差异。我的程序从汽车中获取 x 量的里程表读数(连续行程之间),例如 100 公里、150 公里、400 公里,并且应该采用所有行程的最大行驶距离,在本例中为 250 公里,以及最短距离这将是 50 公里,每个里程表读数之间的平均距离。

到目前为止,我只设法找到一种方法来计算每个里程表读数的最大值和最小值,由变量最大值和最小值给出,但是不知道如何接近或开始编程以查找行程之间的差异。我尝试实现某种数组(此代码中未显示),但我一直收到太多错误。我真的可以就如何解决这个问题或一些见解提出一些建议;这将不胜感激。感谢您的时间。

System.out.print("Input number of trips: ");    
carSample.numberOfTrips = input.nextInt();


    int maximum = Integer.MIN_VALUE;
    int minimum = Integer.MAX_VALUE;
    int total = 0;

for (int i = 0; i < carSample.numberOfTrips; i++) {
    System.out.print("Odometer reading " + (i + 1) + ": ");
    int odometerReading = input.nextInt();
    total += odometerReading;
    if (odometerReading > maximum){
        maximum = odometerReading;
        }
    if (odometerReading < minimum){
        minimum = odometerReading;  
    }

标签: javaodometer

解决方案


int previous = 0;
int minimumTrip = Integer.MAX_VALUE;
int maximumTrip = Integer.MIN_VALUE;

for (int i = 0; i < carSample.numberOfTrips; i++) {
    System.out.print("Odometer reading " + (i + 1) + ": ");
    int odometerReading = input.nextInt();
    int currentTrip = odometerReading - previous;
    if (currentTrip > maximumTrip){
        maximumTrip = currentTrip;
        }
    if (currentTrip < minimumTrip){
        minimumTrip = currentTrip;  
    }
    previous = odometerReading;
}

如果读数不是从 0 开始,请考虑先前 = 第一个里程表读数


推荐阅读