0

さて、これは私が問題を抱えていた Java の割り当てです。私は以前にこれについて尋ね、いくつかの良いコメントとアドバイスを得ましたが、それ以来、割り当てをより明確に理解し、問題は少し変わりました. だからここに割り当てがあります:

                                        ***

あなたの仕事は、3 つのメソッド (askInfo、copyInfo、setArray) を記述して、以下のプログラムを完成させることです。ユーザーがゼロを入力するまで、プログラムは整数 (最大 100 個の整数) を要求する必要があります。整数は 1 から 100 まで変化し、100 個の要素を持つ配列に格納されます。数値は、パラメーターとして数値を持つ配列を受け取る askInfo メソッドで要求されます。メソッドは整数の数を返します。数値ゼロは配列に保存されません。単に入力を停止するために使用されます。次に、指定された数値は、サイズが指定された数値の量である別の配列にコピーされます。コピーは、両方の配列をパラメーターとして受け取る copyInfo メソッドで行われます。この後、新しい配列の要素は setArray メソッドで昇順に配置され、printArray メソッドで画面に出力されます。

完了するプログラム:

import java.util.*;

public class RevisionExercise {

public static void main(String[] args) {



    int[] tempArray = new int[100];

    System.out.println("Type in numbers. Type zero to quit.");

    int amountOfNumbers = askInfo(tempArray);



    int[] realArray = new int[amountOfNumbers];

    copyInfo(realArray, tempArray);



    setArray(realArray);



    printArray(realArray);

}


// Your code here


public static void printArray(int[] realArray ) {

    System.out.println("\Ordered array: ");

    for(int i = 0; i < realArray .length; i++) {

        System.out.println(realArray [i]);

    }

}

印刷例:

数字を入力します。ゼロを入力して終了します。1. 番号: 3 2. 番号: 8 3. 番号: 5 4. 番号: 6 5. 番号: 9 6. 番号: 0

順序付き配列: 9 8 6 5 3


askInfo メソッドに苦労しています。これまでこれを書いてきましたが、ゼロしか返しません。これが私の askInfo メソッドです:

public static int askInfo(int[] tempArray) { //askinfo-メソッド

    Scanner reader = new Scanner(System.in);

int i;

    for (i = 0; i < tempArray.length; i++) {

        System.out.print((i+1) + ". number: ");
        tempArray[i] = reader.nextInt();

    if (tempArray[i] == 0) {
    return tempArray[i];    
    }


    }

    return tempArray[i];

}   



                       ***

割り当てで説明されているように、入力を登録し、割り当ての次のメソッドに渡される数値の量を取得するにはどうすればよいですか。

4

1 に答える 1

2

整数luku値を配列に格納することはないため、配列はデフォルトで初期化されたすべてゼロの整数値から変更されることはありません。ループ内に、追加する必要があります

tempA[i] = luku;

lukuif ステートメントの後で、それが ではないことを確認し0ます。概して:

if (luku == 0) {
    return i;   
}
tempA[i] = luku;
于 2013-08-19T18:40:15.207 に答える