需要打印出数组的最大值以及哪个索引具有最高值的名称

时间:2014-07-23 17:14:20

标签: java arrays

所以我的程序的目的是为5位销售人员创建一个数组。提示用户输入每个人的总销售额。然后,我需要打印总和,平均,最低销售和最高销售。我可以得到平均值,所有销售额的总和,并设法打印阵列的最大值,但我需要它说,例如,Salesperson 2的销售额为50,000美元。我现在拥有的是“50,000有50,000美元”,如果这样的话。所以数组的值3(销售员2,因为我没有包括销售员0)是50,000。我的阵列:

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

    final int SALESPEOPLE = 6;
    int[] sales = new int[SALESPEOPLE];
    int sum;

    for (int i = 1; i < sales.length; i++) {
        System.out.print("Enter sales for salesperson " + i + ": ");
        sales[i] = scan.nextInt();
    }
}

获取最大值

for (int i = 1; i < sales.length; i++) {
    System.out.println(i + " \t" + sales[i]);
    sum += sales[i];
}

System.out.println("The highest sale was");
int maxValue = getMaxValue(sales);
int maxValueName = getMaxValueName(sales);
System.out.println("Name: " + maxValueName + "Sale: " + maxValue);

System.out.println("The lowest sale was");
int minValue = getMinValue(sales);
System.out.println(minValue);

最大值

public static int getMaxValue(int[] array) {
    int maxValue = array[1];
    for (int i = 1; i < array.length; i++) {
        if (array[i] > maxValue) {
            maxValue = array[i];
        }
    }
    return maxValue;
}

public static int getMaxValueName(int[] array) {
    int maxValueName = array[1];
    for (int i = 1; i < array.length; i++) {
        if (array[i] > maxValueName) {
            maxValueName = array[i];
        }
    }
    return maxValueName;
}

1 个答案:

答案 0 :(得分:1)

您的销售人员中有一些人员。这些人中的每一个都有一个名字,也有一些销售额(某种数字)。因此,在数组中只存储一个数字是没有意义的。

定义一种对象类型,其中包含一个字符串(对于一个人的名字)和一个数字(表示他们销售的数量)。这是你应该放在数组中的那种对象。用Java编写然后不使用任何有关于它的一些面向对象设计的东西是没有意义的。

请注意,一旦拥有这些对象的数组,如果您可以找到销售数量最高的对象,那么您还可以找到具有您要打印的人的名称的对象。现在问问自己为什么要编写两个单独的函数,每个函数都必须搜索数组才能找到该对象。