对于我的任务,我必须使用方法来查找数组中的模式数。当阵列中相邻数字的总和大于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);
}
答案 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
。