将数组传递给函数时的.class预期错误

时间:2013-07-16 20:12:41

标签: java arrays function

public class AssignmentChapter8
{
    public static void main(String[] args)
    {
        int randomNumbers[] = new int[100];
        int oddCount;
        int evenCount;

        for(int x = 0; x < randomNumbers.length; x++)
            randomNumbers[x] = (int)(Math.random() * 25);

        for(int y = 0; y < randomNumbers.length; y++)
            if(randomNumbers[y] % 2 > 0)
                oddCount += 1;
            else
                evenCount+=1;


        int oddNumbers[] = getOddNumbers(oddCount, randomNumbers[]);
        int evenNumbers[] = getEvenNumbers(evenCount, randomNumbers[]);

        System.out.println();
        System.out.println("The list of odd numbers is:");
        System.out.println();

        for(int a = 0; a < oddNumbers.length; a++)
            System.out.print(oddNumbers[a] + "\t");

        System.out.println();
        System.out.println("The list of even numbers is:");
        System.out.println();

        for(int b = 0; b < evenNumbers.length; b++)
            System.out.print(evenNumbers[b] + "\t");
    }
    public static int[] getOddNumbers(int oddCount, int randomNumbers[])
    {
        int oddNumbers[] = new int[oddCount];
        int counter = 0;

        for(int x = 0; x < randomNumbers.length; x++)
            if(randomNumbers[x] % 2 > 0)
            {
                oddNumbers[counter] = randomNumbers[x];
                counter++;
            }

        return oddNumbers;
    }
    public static int[] getEvenNumbers(int evenCount, int randomNumbers[])
    {
        int evenNumbers[] = new int[evenCount];
        int counter = 0;

        for(int x = 0; x < evenNumbers.length; x++)
            if(randomNumbers[x] % 2 < 1)
            {
                oddNumbers[counter] = randomNumbers[x];
                counter++;
            }

        return evenNumbers;
    }
}

我是java的新手,并且一直在尝试创建一个程序来生成100个数字并对赔率和赔率进行排序。无论我做什么,该程序甚至会给出.class预期的错误。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

此行中不需要[]而不是

int randomNumbers[] = new int[100];
// and 
int oddNumbers[] = getOddNumbers(oddCount, randomNumbers[]);

int[] randomNumbers = new int[100];
// and
int[] oddNumbers = getOddNumbers(oddCount, randomNumbers);

[]是类型的一部分,而不是名称。

答案 1 :(得分:0)

当引用整个数组时,请不要将[]与变量名一起使用。变化

int oddNumbers[] = getOddNumbers(oddCount, randomNumbers[]);
int evenNumbers[] = getEvenNumbers(evenCount, randomNumbers[]);

int oddNumbers[] = getOddNumbers(oddCount, randomNumbers);
int evenNumbers[] = getEvenNumbers(evenCount, randomNumbers);

答案 2 :(得分:0)

正如Peter Lawrey所说,你不需要函数调用上的括号。还有一些其他编译错误。首先,看起来您在getEvenNumbers函数中有一个复制/粘贴错误。 for循环内oddNumbers应为evenNumbers

您还需要初始化整数oddCountevenCount(可能是0)。