0

我应该声明一个 15 整数数组并返回包含原始数组的正整数的第二个数组。我无法从该方法返回第二个数组。

    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你返回一个int而不是一个int[]

我认为你的方法是有缺陷的。

如果您创建一个ArrayList并将正数放入其中,然后将该列表转换为一个数组,那么您的数组中将没有任何空白位置。

于 2013-03-23T19:36:45.937 回答
1

您需要声明 getPositive 以返回一个数组:

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

此外,您不需要positivemain()方法中进行初始化。那只是分配一个将被丢弃的数组。

于 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 回答