首页 > 解决方案 > 我需要帮助来编写一个找到序列中两个整数之间最大差异的代码

问题描述

我需要编写一个代码来找出序列中两个整数之间的最大差异。用户应该输入连续 10 天的股票价格,程序会告诉你每天最大的变化。我被困住了。

import java.util.Scanner;

public class Change {

 public static void main (String [] args) {
    final int days = 10;
     int largeDiff = 0; // largest difference
 Scanner sc = new Scanner(System.in);
 System.out.println("Enter a stock price:");

int price1 = sc.nextInt();

 int price2 = sc.nextInt();

 int diff1 = price1 - price2;

 for (int i = 1; i <= 8; i++) {
    int priceA = sc.nextInt();
    int priceB = sc.nextInt();

    int diff2 = priceA - priceB;

    if (diff2 > diff1) {
        diff2 = largeDiff;
    }
    else {
        diff2 = diff1;
    }

 }

 System.out.println(largeDiff);

}

}

标签: javacloud9-ide

解决方案


您分配largeDiffdiff2. 修改您的代码,如下所示:

if (diff2 > diff1) {
        largeDiff = diff2;
    }
    else {
        largeDiff = diff1;
    }

你的代码也有问题。要找到最大的差异:

编辑: 做以下修改:

public static void main(String[] args) {
    final int days = 10;
    int largeDiff = 0; // largest difference
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter a stock price:");

    int price1 = sc.nextInt();

    int price2 = sc.nextInt();

    int diff1 = price1 - price2;
    largeDiff = Math.abs(diff1);

    for (int i = 1; i <= 8; i++) {
        int priceA = sc.nextInt();
        int priceB = sc.nextInt();

        int diff2 = Math.abs(priceA - priceB);

        if (diff2 > largeDiff) {
            largeDiff = diff2;
        }
    }

    System.out.println(largeDiff);

}

NB: Math::abs用于求绝对值


推荐阅读