Java阵列帮助
我正在尝试编写一个程序,要求用户输入5人的销售额,它将显示最大值和最小值,并打印出销售人员id和最小值的金额,最大值和最小值销售人员3的销售额最高,为4500美元。在程序打印出最小值、最大值和平均值后,它会要求用户输入一个随机数,并将其与之前的数字进行比较,看看谁达到或超过了最大值,然后打印出那个人的id。我很难完成。有人能帮我看看吗?这就是我犯的错误Java阵列帮助,java,Java,我正在尝试编写一个程序,要求用户输入5人的销售额,它将显示最大值和最小值,并打印出销售人员id和最小值的金额,最大值和最小值销售人员3的销售额最高,为4500美元。在程序打印出最小值、最大值和平均值后,它会要求用户输入一个随机数,并将其与之前的数字进行比较,看看谁达到或超过了最大值,然后打印出那个人的id。我很难完成。有人能帮我看看吗?这就是我犯的错误 // **************************************************************** // S
// ****************************************************************
// Sales.java
//
// Reads in and stores sales for each of 5 salespeople. Displays
// sales entered by salesperson id and total sales for all salespeople.
//
// ****************************************************************
import java.util.Scanner;
public class Sales
{
public static void main(String[] args)
{
final int SALESPEOPLE = 5;
int[] sales = new int[SALESPEOPLE];
int sum;
int average;
int max=sales[0];
int min=sales[0];
int salemade;
Scanner scan = new Scanner(System.in);
for (int i=0; i<sales.length; i++)
{
System.out.print("Enter sales for salesperson " + (i+1) + ": ");
sales[i] = scan.nextInt();
}
// Find maximum and minimum sale value
for (int i=0; i<sales.length; i++)
if(sales[i]>max)
max=sales[i];
System.out.println("Salesperson "+sale[i]+ "has the max sale of $ " + max);
if(sales[i]<min)
min=sales[i];
System.out.println("Salesperson "+sale[i]+ "has the min sale of $ "+min);
// List of sales
System.out.println("\nSalesperson Sales");
System.out.println("--------------------");
sum = 0;
for (int i=0; i<sales.length; i++)
{
System.out.println(" " + (i+1) + " " + sales[i]);
sum += sales[i];
}
average= sum/5;
System.out.println("\nTotal sales: " + sum);
System.out.println("The average sale is:$ "+average);
//See who exeeded the max sale
System.out.println("Enter the amount of sale made");
salemade=scan.nextInt();
for(int i=0; i=sales.length; i++)
{
if(sales[i]>=salemade)
System.out.println(sales[i]);
}
}
}
您将数组定义为sales,但尝试将其引用为sale
您将数组定义为sales,但随后尝试将其引用为sale。编译错误是因为您在打印语句中将sales[]与sale[]拼写错误。编译错误是因为您在打印语句中将sales[]与sale[]拼写错误。第33行:没有名为sale的数组;您的数组称为sales 第33行,第34行:此时变量i超出范围。您可能应该在if语句和for循环中使用括号。Java允许您在没有括号的情况下执行if,但是如果范围不清楚,它可能会混淆编译器
在调试编译问题时,您应该阅读输出并查看哪些行号导致了问题。如果编译器找不到符号,则可能意味着您的引用超出范围或不在范围内,例如拼写错误。第33行:没有名为sale的数组;您的数组称为sales 第33行,第34行:此时变量i超出范围。您可能应该在if语句和for循环中使用括号。Java允许您在没有括号的情况下执行if,但是如果范围不清楚,它可能会混淆编译器
在调试编译问题时,您应该阅读输出并查看哪些行号导致了问题。如果编译器找不到符号,则可能意味着您的引用超出范围或不在范围内,例如拼写错误。首先,您忘记了行中的大括号
int[] sales = new int[SALESPEOPLE];
...
System.out.println("Salesperson "+sale[i]+ "has the max sale of $ " + max);
你需要比较,而不是分配
首先,你把大括号忘在队伍里了
int[] sales = new int[SALESPEOPLE];
...
System.out.println("Salesperson "+sale[i]+ "has the max sale of $ " + max);
你需要比较,而不是分配
您还需要将上一个for循环修复为以下内容:
for(int i=0; i==sales.length; i++)
您还需要将上一个for循环修复为以下内容:
for(int i=0; i==sales.length; i++)
尝试使用以下代码:
for(int i=0; i<sales.length; i++)
{
if(sales[i]>=salemade)
System.out.println(sales[i]);
}
尝试使用以下代码:
for(int i=0; i<sales.length; i++)
{
if(sales[i]>=salemade)
System.out.println(sales[i]);
}
变量名中缺少一个s。它是销售而不是销售。除此之外,您可能还需要进行无数次重构。您在变量名中遗漏了一个s。它是销售而不是销售。除此之外,你可能需要做无数次重构。哦,对了,但即使我纠正了它,它仍然会给我一个销售错误[i]没有发现哦,对了,但即使我纠正了它,它仍然会给我一个销售错误[i]没有发现哦,对了,但即使我纠正了它,它仍然会给我一个销售错误[i]没有发现确保你写的是销售,而不是销售。Java关心这个案例。我明白了,还有一个问题,我如何让它打印出数组索引号,假设我为索引1输入10,我如何让它打印销售人员1的最大销售额为10美元,而它打印销售人员10的最大销售额为10美元。这行代码不适用于我想做的事情System.out.PrintLnSealerson+Sale[I]+最大销售额为$+max@Tuan:System.out.printlnSalesperson+i+的最大销售额为$+max@团谷妍:根据这个描述,你只想打印索引i而不是销售[i]。请注意,索引是基于0的,因此对于用户来说,他们可能希望第一个销售人员是1号。哦,是的,但即使我更正了它,它仍然会给我一个销售错误[i]未找到请确保您编写的是销售,而不是销售。Java关心这个案例。我明白了,还有一个问题,我如何让它打印出数组索引号,假设我为索引1输入10,我如何让它打印销售人员1的最大销售额为10美元,而它打印销售人员10的最大销售额为10美元。这行代码不适用于我想做的事情System.out.PrintLnSealerson+Sale[I]+最大销售额为$+max@Tuan:System.out.printlnSalesperson+i+的最大销售额为$+max@团谷妍:根据这个描述,你只想打印索引i而不是销售[i]。请注意,索引是基于0的,因此对于用户来说,他们可能希望第一个销售人员是1号。我尝试了这一点,但没有打印出销售最大的人员和销售最小的人员,而是输出{销售员10最大销售额为10美元销售员10最小销售额为0美元销售员20最大销售额为20美元销售员20最小销售额为0美元销售员30最大销售额为30美元销售员30最小销售额为0美元销售员40最大销售额为40美元销售员40最小销售额为0美元销售员50最大销售额为50美元}还有,它如何让它打印数组索引,假设索引1=10,那么它将打印Sa
leperson 1 sale$10我无法使用该行系统打印索引号。out.printlnSalesperson+sales[I]+的最大销售额为$+max;我试过了,但是没有打印出最大销售额的人和最小销售额的人,而是输出{销售员10最大销售额为10美元销售员10最小销售额为0美元销售员20最大销售额为20美元销售员20最小销售额为0美元销售员30最大销售额为30美元销售员30最小销售额为0美元销售员40最大销售额为40美元销售员40最小销售额为0美元销售员50最大销售额为50美元}还有,如何让它打印数组索引,假设索引1=10,那么它将打印Saleperson 1 sale$10我无法让它用这行系统打印索引号。out.printlnSalesperson+sales[I]+的最大销售额为$+max;当我为for循环放入括号时,输出是{销售员10最大销售额为10美元销售员10最小销售额为0美元销售员20最大销售额为20美元销售员20最小销售额为0美元销售员30最大销售额为30美元销售员30最小销售额为0美元销售员40最大销售额为40美元销售员40最小销售额为0美元销售员50最大销售额为50美元}是的,这就是我一直想做的事情。谢谢!!TUN好。请考虑一下帮助回答的问题,因为很多人都回答了修正:嗯,问题……当打印最小值时,零总是打印而不是min,不管我输入什么值,最大值是正确的,但min总是打印零。问题是定义int min=sales[0];。将其移动到第一个for循环之后。现在将其定义为零,这样它将永远找不到任何其他最小值。当我为for循环放括号时,不是只打印最小值和最大值,而是输出{销售员10最大销售额为10美元销售员10最小销售额为0美元销售员20最大销售额为20美元销售员20最小销售额为0美元销售员30最大销售额为30美元销售员30最小销售额为0美元销售员40最大销售额为40美元销售员40最小销售额为0美元销售员50最大销售额为50美元}是的,这就是我一直想做的事情。谢谢!!TUN好。请考虑一下帮助回答的问题,因为很多人都回答了修正:嗯,问题……当打印最小值时,零总是打印而不是min,不管我输入什么值,最大值是正确的,但min总是打印零。问题是定义int min=sales[0];。将其移动到第一个for循环之后。现在将其定义为零,这样它就不会找到任何其他最小值。
for(int i=0; i<sales.length; i++)
{
if(sales[i]>=salemade)
System.out.println(sales[i]);
}
// ****************************************************************
// Sales.java
//
// Reads in and stores sales for each of 5 salespeople. Displays
// sales entered by salesperson id and total sales for all salespeople.
//
// ****************************************************************
import java.util.Scanner;
public class Sales {
public static void main(String[] args) {
final int SALESPEOPLE = 5;
int[] sales = new int[SALESPEOPLE];
int sum;
int average;
int max = sales[0];
int min = sales[0];
int salemade;
Scanner scan = new Scanner(System.in);
for (int i = 0; i < sales.length; i++) {
System.out.print("Enter sales for salesperson " + (i + 1) + ": ");
sales[i] = scan.nextInt();
}
// Find maximum and minimum sale value
for (int i = 0; i < sales.length; i++) {
if (sales[i] > max)
max = sales[i];
System.out.println("Salesperson " + sales[i]
+ "has the max sale of $ " + max);
if (sales[i] < min)
min = sales[i];
System.out.println("Salesperson " + sales[i]
+ "has the min sale of $ " + min);
}
// List of sales
System.out.println("\nSalesperson Sales");
System.out.println("--------------------");
sum = 0;
for (int i = 0; i < sales.length; i++) {
System.out.println(" " + (i + 1) + " " + sales[i]);
sum += sales[i];
}
average = sum / 5;
System.out.println("\nTotal sales: " + sum);
System.out.println("The average sale is:$ " + average);
// See who exeeded the max sale
System.out.println("Enter the amount of sale made");
salemade = scan.nextInt();
for (int i = 0; i < sales.length; i++) {
if (sales[i] >= salemade)
System.out.println(sales[i]);
}
}
}