有点困惑我的硬件问题的一部分。看起来很容易,但我不能把手指放在上面。我正在尝试以最大和最小销售额返回销售人员。我很困惑如何做到这一点。非常感谢帮助。
import java.util.Scanner;
public class Cray {
public static void main(String[] args){
final int SALESPEOPLE = 5;
int[] sales = new int[SALESPEOPLE];
int sum, maxperson, minperson;
int max = sales[0];
int min = sales[0];
Scanner scan = new Scanner(System.in);
//Fill the 5 element array of sales with the user's input
for (int i=0; i<sales.length; i++)
{
System.out.print("Enter sales for salesperson " + i + ": ");
sales[i] = scan.nextInt();
//Calculate the max and min sales
//How do I return the salesperson i with the the max and min sales?
if(sales[i] > max){
max= sales[i];
}
if(sales[i] < min){
min = sales [i];
}
}
System.out.println("\nSalesperson Sales");
System.out.println("--------------------");
sum = 0;
for (int i=0; i<sales.length; i++)
{
System.out.println(" " + i + " " + sales[i]);
sum += sales[i];
}
System.out.println("\nTotal sales: " + sum);
System.out.println("Average sales: " + sum/5);
//WHere I want to print the max salesperson.
System.out.println("Salesperson" + );
}
}
答案 0 :(得分:2)
您可以存储索引计数
在开始扫描输入之前声明并初始化两个int
变量:
int maxindex=Integer.MIN_VALUE,minindex=Integer.MIN_VALUE;
然后将数组索引分配给它们:
if(sales[i] > max){
max= sales[i];
maxindex = i;
}
if(sales[i] < min){
min = sales [i];
minindex = i;
}
现在,您可以通过最大和最小销售直接获得销售人员
System.out.println("Max sales person "+sales[maxindex]);
System.out.println("Min sales person "+sales[minindex]);
我通过存储数组索引在这里使用了一个非常简单的技巧。 这是非常基本的方法,尽管可能有更优化的方法。
答案 1 :(得分:0)
目前在您的for-loop中,您需要存储最高和最低销售,而不是销售人员获得这些销售额。因此,您应该将i
存储在max
/ min
中,而不是sales[i]
。
int max = 0, int min = 0
...
// in the for-loop
if(sales[i] > sales[max]){
max = i; // i.e. salesperson "i"
}
if(sales[i] < sales[min]){
min = i;
}
...
System.out.println("Max salesperson: " + max);
System.out.println("Min salesperson: " + min);
答案 2 :(得分:0)
您可以调整支票以获得最大值
if(sales[i] > max){
max = sales[i];
maxPerson = i;
}
答案 3 :(得分:0)
再定义两个变量:
int maxSalePersonIndex = 0;
int minSalePersonIndex = 0;
将您的if
更新为:
if(sales[i] > max){
max= sales[i];
maxSalePersonIndex = i;
}
if(sales[i] < min){
min = sales [i];
minSalePersonIndex = i;
}
最后,只需打印maxSalePersonIndex
和minSalePersonIndex
System.out.println("Salesperson index with max sale = " + maxSalePersonIndex);
System.out.println("Salesperson index with min sale = " + minSalePersonIndex);