0

15整数配列を宣言し、元の配列の正の整数を含む2番目の配列を返すことになっています。メソッドから2番目の配列を返すのに問題があります。

    import java.util.Scanner;
    public class array4
    {
      public static void main(String [] args)
      {
        int [] num = new int[15]; int [] positives = new int [15];
        getInput(num);
        positives = getPositives(num);
        printResults(num, positives);
      }
      public static void getInput(int [] num){
        int x;
        Scanner kbd = new Scanner(System.in);
        System.out.println("Enter 15 integers");
        for(x = 0; x < 15; x++)
    num[x] = kbd.nextInt();

   }
  public static int getPositives(int [] num){
    int position = 0;  
    int [] positive = new int [15];
    for(int i =0; i < num.length; i++){  

      if(num[i] >=0) {
        positive[position] = num[i];  
        position++;  }}
    return positive;
  }


  public static void printResults(int [] num, int [] positives){
    System.out.println("You entered"); int x;
    for(x = 0; x < num.length; x++)
    System.out.println(num[x]);
    System.out.println("Your positive integers are ");
    for(x = 0; x < positives.length; x++)
    System.out.println(positives[x]);}}
4

4 に答える 4

1

ですpublic static int[] getPositive()。戻り値の型は整数の配列ですが、あなたはそれをとして宣言しましたint

于 2013-03-23T19:35:13.587 に答える
1

あなたはではなくgetPositiveを返していますintint[]

しかし、あなたのアプローチには欠陥があると思います。

を作成しArrayListてそこに正の数を入れ、そのリストを配列に変換すると、配列に空の場所がなくなります。

于 2013-03-23T19:36:45.937 に答える
1

配列を返すには、getPositiveを宣言する必要があります。

public static int[] getPositive(int [] num){

positiveまた、メソッドで初期化する必要はありませんmain()。配列を割り当てるだけで、破棄されます。

于 2013-03-23T19:37:54.777 に答える
0

メソッドは、単一の整数値ではなく整数配列を返す必要があります。これが変更されたコードです:

 public static int[] getPositive(int [] num){
int position = 0;  
int [] positive = new int [15];
for(int i =0; i < num.length; i++){  

  if(num[i] >=0) {
    positive[position] = num[i];  
    position++;  }}
return positive; // Wont give compilation error now

}

于 2013-03-23T19:40:24.463 に答える