0

我必须创建一个程序,向用户询问一系列数字,并将输入保存在一个数组中。然后稍后允许用户在数组中搜索一个数字并打印该数组。我被卡住了,因为它不允许我将输入存储在数组中。我还需要帮助打印数组。

我正在上 Java 课,我们使用的教科书根本没有帮助,有没有人推荐一本好的 Java 教科书?

到目前为止,这是我的代码:

import java.util.Scanner;
public class MyContainer  {

  private int [] values;
  private int size;

 public MyContainer() {
    values = new int[50];
    size=0;
  }

  public static void main(String [] args)
  {

//load()
Scanner input = new Scanner(System.in);
double sum = 0;
System.out.print("Enter a positive number, negative number will end entry.");
double number = input.nextDouble();
int count = 0;
double average = 0;
int numofinput = 0;

 while (number >= 0)
{
  count++;
  numofinput ++;
  sum += number;
  System.out.print("Enter a positive number, negative number will end entry.");
  number = input.nextDouble();
}
 sum = sum + number;
 average = sum/numofinput;
    System.out.print("The average of the numbers as of right now is "
+ average);

}

//search()
4

2 回答 2

1

简要总结一下我所做的更改:

1)你有 3 个变量做同样的事情,所以我去掉了其中的 2 个。(numOfInputs 和计数)。

2)您正在通过循环向用户询问数字,但您从未将数字添加到数组中。

3)我在循环中添加了一个条件,以便在 50 个数字后循环停止,这样你就永远不会超过数组的大小。

4)将大部分主要内容移至另一种方法。Java(和大多数其他语言)不允许静态方法访问非静态变量。所以 main 创建了一个 MyContainer 的新实例,然后调用一个方法来进行添加。

5)我添加了一个打印列表方法,它只是使用循环遍历列表。

导入 java.util.Scanner;

公共类 MyContainer {

private double[] values;
private int size;
public MyContainer() {
    values = new double[50];
    size = 0;
}

public void run(){
    // load()
    Scanner input = new Scanner(System.in);
    double sum = 0;
    System.out.print("Enter a positive number, negative number will end entry.");
    double number = input.nextDouble();

// 整数计数 = 0; //计数去除双重平均= 0;

    while (number >= 0 && size < values.length) {
        values[size] = number; //Line added
        size++;
        sum += number;
        System.out.print("Enter a positive number, negative number will end entry.");
        number = input.nextDouble();
    }

    sum = sum + number;
    average = sum / size;
    System.out.println("The average of the numbers as of right now is " + average);

}

public void printList(){
    System.out.print("[");
    for (int i = 0; i <= size; i++){
        System.out.print(values[i]+", ");
    }
    System.out.println("end]");
}

public static void main(String[] args) {
    MyContainer cont = new MyContainer();
    cont.run();
    cont.printList();
}

}

于 2013-02-19T00:53:57.340 回答
0

你真的应该搜索这样的东西,有很多关于如何使用这样的数组的例子:How to put a Scanner input into an array... 例如几个数字

于 2013-02-19T00:41:14.827 回答