我必须显示具有最高总收入和最低总收入的分销商。这是我的代码,它显示的最低,但是两次显示沃尔特·迪士尼,然后在第三个显示正确的答案。我该如何解决?
我尝试将打印内容置于循环之外,并且重复了10次以上,并且超出了循环循环,这给了我一个错误。
public void GEarnings (String [] d, int [] g){
int high = 0;
int low = 0;
for(int index = 0; index < g.length; index++){
if(d[index].equals("Walt Disney")) {
high += g[index];
System.out.println("Highest Earnings - " + d[index] + " " + "$" + df.format(high));
}
}
for(int index = 0; index < g.length; index++){
if(d[index].equals("20th Century Fox")){
low += g[index];
System.out.println("Lowest Earnings - " + d[index] + " " + "$" + df.format(low));
}
}
}
答案 0 :(得分:0)
public void GEarnings(String[] d, int[] g) {
int high = 0;
int low = 0;
for(int i = 0; i < g.length; i++) {
if(g[i] > g[high]) high = i;
if(g[i] < g[low]) low = i;
}
System.out.println("Highest earnings - " + d[high] +", lowest earnings - " + d[low]);
}
对于每个收入g[i]
,如果它高于索引存储在high
中的收入,则将其替换。与low
相同,如果较低,我们将其替换。
我们将索引i
存储在high
和low
中,因此我们可以通过搜索d[high]
和d[low]
来获得公司的名称。
注意:最好使用Map<String, Integer>
来正确链接公司及其收入。