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およびcount)。

2)ユーザーに番号を尋ねるループを実行していましたが、配列に番号を追加したことはありません。

3)ループに条件を追加して、50の数値の後にループが停止し、配列のサイズを超えないようにしました。

4)メインのほとんどを別のメソッドに移動しました。Java(および他のほとんどの言語)では、静的メソッドが非静的変数にアクセスすることはできません。したがって、mainはMyContainerの新しいインスタンスを作成し、追加を行うメソッドを呼び出します。

5)ループを使用してリストを通過するだけのprintlistメソッドを追加しました。

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();

// int count = 0; //削除されたカウントdoubleaverage= 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

あなたは本当にこのようなものを検索する必要があります、このような配列を使用する方法についての多くの例があります:スキャナー入力を配列に入れる方法...例えばいくつかの数字

于 2013-02-19T00:41:14.827 に答える