2013-10-15 30 views
-1

我想返回一个数组的奇数,但Eclipse似乎并不接受我返回的array[i];的代码。我认为它需要返回一个完整的数组,因为我将一个数组设置为我的方法的参数。 正如我之前所说的,我需要传递一个数组并获取该数组的特定元素作为回报。即使我将该数组设置为静态,如何返回单个元素?如何返回数组的特定元素?

编辑:好吧,那就是:

public class newClass{ 
public static void main(String[] args) 
{  
    int [] newArray= new int [4]; 
    int [] array = {4,5,6,7}; 

    newArray[0] = array[0]+array[1]+array[2]+array[3]; 
    newArray[1] = array[0]*array[1]*array[2]*array[3]; 
    newArray[2] = findOut(array); 

} 

public static int findOut (int [] array3) 
{ 
    int e1=0; 
    int e2=0; 
    for (int i=0; i<array3.length; i++) 
    { 
     if (array3[i]%2==0) 
     { 
      e1+=array3[i]; 
      array3[i]=e1 
      return array3[i]; 
     } 

     else 
     { 
      e2+=array3[i]; 
      array3[i]=e2; 
      return array3[i]; 

     } 

    } 

} 


} 

我知道有可能比这里的几个失误较多,但我的工作就可以了,我不仅回奇数,我也将它们加在一起。

+10

如果您想要返回奇数,您必须返回一组数字而不是单个数字,或者我误解了您的问题,请告诉我们代码 –

+1

?如果你有一个数字输入数组,并且你想返回所有的奇数,你也必须返回一个数组。 例如对于输入[1,2,3,4,5],您将返回[1,3,5],对吧? –

+3

当提出这样的问题时,提供相关的代码和确切的编译错误。它会让你的答案更清晰,你会得到更好的答案。 – amit

回答

5

你的代码应该是这样的:在这里

public int getElement(int[] arrayOfInts, int index) { 
    return arrayOfInts[index]; 
} 

要点是方法的返回类型,它应该与数组元素类型,如果你是从main()工作 - 这个方法必须是静态也。

1

确保你方法的返回类型与你想返回的一样。 如: `

public int get(int[] r) 
    { 
    return r[0]; 
    } 

`

注:返回类型为int,不是int [],所以它能够返回int类型。

一般情况下,原型可以

public Type get(Type[] array, int index) 
{ 
    return array[index]; 
} 
2

我想如果我没看错,你想是这样的,返回数组

的奇数?

List<Integer> getOddNumbers(int[] integers) { 
    List<Integer> oddNumbers = new ArrayList<Integer>(); 
    for (int i : integers) 
    if (i % 2 != 0) 
     oddNumbers.add(i); 
    return oddNumbers; 
} 
0

有两个原因,为什么它不编译(编辑。):你在这个语句的末尾缺少分号:

array3[i]=e1 

另外,findOut方法没有按”如果数组长度为0,则返回任何值。在方法的末尾添加return 0;将使其编译。我不知道这是否会让它做你想做的事情,因为我不知道你想做什么。