Java 需要打印出数组的最大值以及哪个索引的名称包含最大值

Java 需要打印出数组的最大值以及哪个索引的名称包含最大值,java,arrays,Java,Arrays,因此,我的计划的目的是为5名销售人员创建一个数组。系统会提示用户输入每个人的总销售额。然后,我需要打印出总数、平均值、最低销售额和最高销售额。我可以得到平均值,即所有销售额的总和,并已成功打印出数组的最大值,但我需要它表明,例如,Salesperson 2的销售额为50000美元。我现在拥有的是“50000有50000美元”,如果从那以后就有了。所以数组的值3(salesperson 2,因为我没有包括salesperson 0)是50000。我的阵列: public static void m

因此,我的计划的目的是为5名销售人员创建一个数组。系统会提示用户输入每个人的总销售额。然后,我需要打印出总数、平均值、最低销售额和最高销售额。我可以得到平均值,即所有销售额的总和,并已成功打印出数组的最大值,但我需要它表明,例如,Salesperson 2的销售额为50000美元。我现在拥有的是“50000有50000美元”,如果从那以后就有了。所以数组的值3(salesperson 2,因为我没有包括salesperson 0)是50000。我的阵列:

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();
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
最终int销售人员=6人;
int[]销售=新int[销售人员];
整数和;
对于(int i=1;i
和获取最大值

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);
for(int i=1;i
最大值

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;
}
公共静态int getMaxValue(int[]数组){
int maxValue=数组[1];
for(int i=1;imaxValue){
最大值=数组[i];
}
}
返回最大值;
}
公共静态int getMaxValueName(int[]数组){
int maxValueName=数组[1];
for(int i=1;imaxValueName){
maxValueName=数组[i];
}
}
返回maxValueName;
}

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

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


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

因为
getMaxValueName
的代码与
getMaxValueName
相同,只是更改了一些变量名,当然,它将返回相同的结果。事实上,在最初显示的代码中,没有地方可以存储销售人员的姓名。程序不可能打印出它从未有过的数据。问题是我需要打印出世界上销售额最大的销售人员array@KieranHughes如果希望
getMaxValueName
返回具有最高值的销售人员的“姓名”或ID号,则必须修复它。现在,您设置了
maxValueName=array[i]
,这意味着
maxValueName
将保留最高的值(称之为
Name
不会神奇地让编译器找到名称)。因此,如果您希望它是一个名称而不是一个值,您将如何更改方法?更改方法getMaxValueName?代码运行时,用户将输入售出金额。如何仅打印数组的值?比如,出现了150000个,但我希望它的格式正确,比如说(“Salesperson”+maxName+“has$”+maxValue);程序还必须以某种方式从用户那里获取每个销售人员的姓名作为输入。如果你从不告诉这个程序任何人的名字,它就不能告诉你最大的卖家的名字——除非你的销售人员碰巧被命名为“1”、“2”、“3”、“4”和“5”。顺便说一句,很多年前,查理·布朗漫画中有一个名为5的角色……那么,我应该为5个不同的名字制作另一个数组?也许如果我把我想回答的问题贴出来会有帮助,因为我认为我们不应该这样做。1) 查找并打印最大销售额。打印销售人员的id和最大销售额以及销售额,例如,“销售人员3的销售额最高,为4500美元。”注意,您不需要另一个循环;您可以在读取值并计算总和的相同循环中执行此操作。啊哈,混淆的根源是“name”一词的使用。在Java中,通过使用对象,您仍然可以同时从一个函数返回两个内容(ID和销售编号)。但是人们几乎从不在Java中仅仅添加一个对象来输出文本;相反,从对象中读取较小的数据片段,并将这些片段放在输出文本中所需的位置。