如何在salesperson程序中返回销售额最大的人员-JAVA

如何在salesperson程序中返回销售额最大的人员-JAVA,java,Java,有点被我的硬件问题搞糊涂了。这似乎很容易,但我无法确定。我试图返回销售人员的最大和最小销售额。我不知道该怎么做。非常感谢您的帮助 import java.util.Scanner; public class Cray { public static void main(String[] args){ final int SALESPEOPLE = 5; int[] sales = new int[SALESPEOPLE]; int sum

有点被我的硬件问题搞糊涂了。这似乎很容易,但我无法确定。我试图返回销售人员的最大和最小销售额。我不知道该怎么做。非常感谢您的帮助

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" +  );

          }

        }
import java.util.Scanner;
公营部门{
公共静态void main(字符串[]args){
最终int销售人员=5人;
int[]销售=新int[销售人员];
整数和,maxperson,minperson;
int max=销售额[0];
int min=销售额[0];
扫描仪扫描=新扫描仪(System.in);
//用用户的输入填充sales的5元素数组
对于(int i=0;i max){
max=销售额[i];
}
如果(销售[i]for(int i=0;i当前在for循环中,您存储的是最大和最小销售额,而不是获得这些销售额的销售人员。因此,您应该将
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);
int max=0,int min=0
...
//在for循环中
if(销售额[i]>销售额[max]){
max=i;//即销售人员“i”
}
if(销售[i]<销售[min]){
min=i;
}
...
System.out.println(“最大销售人员:+Max”);
System.out.println(“最小销售人员:+Min”);

您可以调整支票的最大金额

   if(sales[i] > max){
       max = sales[i];
       maxPerson = i;
   }

您可以存储索引计数 在开始扫描输入之前,声明并初始化两个
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;
   }
我在这里使用了一个非常简单的技巧,存储数组索引。
这是一种非常基本的方法,尽管可能有更优化的方法。

定义另外两个变量为:

        int maxSalePersonIndex = 0;
        int minSalePersonIndex = 0;
将您的
更新为:

        if(sales[i] > max){
            max= sales[i];
            maxSalePersonIndex  = i;
        }
        if(sales[i] < min){
            min = sales [i];
            minSalePersonIndex = i;
        }

这是我一开始尝试做的。但是我如何在底部打印maxperson值呢?maxperson在范围之外。如果你像max一样将它放在循环之外,它就不在范围之外了。我实际上是上帝。我必须将max和minperson初始化为0。我只是最初声明了它们。我将使用
max
而不是
sales[maxindex]
我最终初始化为0,只是按原样打印了最大和最小索引。我认为这是最好的答案,所以我会给你评分。@ARS假设sales[2]=10,max=5。根据你的答案,现在最大值将是2,而不是110@Abu是的,你是对的-
max
应该是
sales[max]
。感谢您指出这一点-请参阅编辑。
        if(sales[i] > max){
            max= sales[i];
            maxSalePersonIndex  = i;
        }
        if(sales[i] < min){
            min = sales [i];
            minSalePersonIndex = i;
        }
    System.out.println("Salesperson index with max sale = " + maxSalePersonIndex);
    System.out.println("Salesperson index with min sale = " + minSalePersonIndex);