方法不起作用

时间:2016-08-08 11:53:58

标签: java

对于我的任务,我必须使用方法来查找数组中的模式数。当阵列中相邻数字的总和大于7时,计算模式。

我必须使用2个方法,1个是insertNumbers来创建一个数组,另一个是computePattern来计算模式。

但是,打印出的图案与打印出的阵列不匹配。这是代码。

由于这是一项任务,我宁愿不得到答案,但我的代码的哪一部分是错误的答案,以及如何解决它。

编辑:这是一个示例输出。

样本输出#1:数组:2 7 2 3 1 5 7 4 3 6

模式数量:3

public static int[] insertNumbers()
{
    //Declaring the array.
    int randomArray[] = new int[10];

    //Setting random numbers into the array.
    for (int k = 0;k < randomArray.length;k++)
    {
        int i = (int)((Math.random()*9)+1);
        randomArray[k] = i;
    }

    //Returning array into other methods.
    return randomArray;
}

public static int computePattern()
{
    int a = 0;
    int b = 1;
    int pattern = 0;
    int[] randomArray = insertNumbers();
    //Computing the number of patterns.
    for (;a<=8 && b<=9;)
    {
        if (randomArray[a] + randomArray[b]>7)
        {
            pattern++;            
        }      
        a+=2;
        b+=2;
    }
    return pattern;
}

public static void main(String[] args) 
{
    int pattern = computePattern();
    int[] randomArray = insertNumbers();

    //Printing out the contents of the array.
    System.out.print("Array : " );
    for(int i = 0; i < 10; i++)
    {
        System.out.print(+randomArray[i] +" ");
    }

    System.out.println(" ");

    //Printing out the number of patterns.
    System.out.println("Number of patterns: "+pattern);
}

3 个答案:

答案 0 :(得分:2)

您正在为不同的数组计算模式,并且在main中您正在打印不同的数组(基本上是两次调用insertNumbers)。见这里:

    int pattern = computePattern(); // First time computePatter generates one array
    int[] randomArray = insertNumbers(); // Another array is generated here

此外,您的模式计数似乎不正确。提示:它是否将索引1和2的元素进行比较?

答案 1 :(得分:0)

你应该这样做计算模式部分

{

    int a;
    int pattern = 0;
    int[] randomArray = insertNumbers();
    //Computing the number of patterns.
    for (a=1;a<9;a++)
    {
        if (randomArray[a] + randomArray[a-1]>7)
        {
            pattern++;            
        }      

    }
    return pattern;
}

你肯定会将insertNumbers称为两次。你应该在main中调用它一次并将该数组发送到computePattern。

int[] randomArray = insertNumbers();
int pattern = computePattern(randomArray);

答案 2 :(得分:0)

main功能

中删除此行
int[] randomArray = insertNumbers();

在计算模式后,您再次调用函数insertNumbers