有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将元素输入数组

我试图在数组中输入元素,元素值未知或元素数量未知

public class Sales
{
  public void salesAmount()
  {
Scanner scan = new Scanner(System.in);

int sum = 0; 
int salespeople = 0;

    //Create printstatement to ask the user to ("enter the number of sales people");
   System.out.println("Enter the number of sales people: ");


   //store the response in salespeople
   salespeople = scan.nextInt();


    //Create an int array called sales that will have the number entered by user as the number of elements
    int[] sales = new int[salespeople];


    //create a for loop that will loop through the array sales.    
    for(int i = 0; i < salespeople; i++)
{
     //Create print statement that says:  ("Enter sales for salesperson " + i + ": ");
      System.out.println("Enter sales for salesperson " + i + ": ");
      sales[i] = scan.nextInt();
      //store response in sales[i] 
      sum = sum + sales[i];

    }

    System.out.println("Salesperson\tSales");
    System.out.println("--------------------");

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

    System.out.println("\nTotal sales: " + sum);
      }
    }

我在第二个文件中打印出来,代码如下:

public static void main(String[]args)
{
  Sales sales = new Sales();
  sales.salesAmount();
}

预期结果应该是所有输入数字的总和,但我的结果是它们的总和,然后是两倍


共 (2) 个答案

  1. # 1 楼答案

    问题是,你把总数加了两次,当你在销售人员中循环时加了一次:

    sum = sum + sales[i];
    

    然后在打印总销售额之前:

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

    因此,要么需要在第二个循环之前重置总和,即sum = 0;,要么从第二个循环中删除sum += sales[i];

  2. # 2 楼答案

    在第二个“for循环”中,删除总和。你在两个循环中做两次加法

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