java我需要帮助来编写一个代码,找出序列中两个整数之间的最大差异
我需要编写一个代码,找出序列中两个整数之间的最大差异。用户应该输入连续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);
}
}
# 1 楼答案
我喜欢先输入数据,然后做所有必要的计算。你应该从用户那里获取10条输入信息,对吗?因此,循环大约移动8次,每次从
Scanner
中获取2个输入,基本上意味着你需要总共提供16个输入,这绝对不是你想要的。下面给出了我的解决方案供参考# 2 楼答案
# 3 楼答案
您正在将
largeDiff
分配给diff2
。修改代码,如下所示:你的代码也有一些问题。要找出最大的区别:
编辑: 执行以下修改:
N.B:
Math::abs
用于查找绝对值# 4 楼答案
您的代码允许用户输入10个以上的价格。用户输入下一个价格时,您应该跟踪价格差异。请参见以下算法:
您可能会注意到,我创建了第二个方法,它将依赖项
Scanner
和int
作为参数。这使得编写自动化测试变得更容易其他需要考虑的代码——你的代码不处理无效的输入。例如,如果用户输入字母而不是整数。您可能应该添加逻辑来处理此类场景