2016-08-08 6 views
0

私の割り当てでは、メソッドを使用して配列内のパターンの数を見つけなければなりません。配列内の隣接する数字の合計が7を超えると、パターンがカウントされます。メソッドが機能しない

2つのメソッドを使用しなければなりません.1つは配列を作成するinsertNumbers、もう1つはパターンを数えるcomputePatternです。

しかし、印刷されたパターンは、印刷された配列と一致しません。ここにコードがあります。

これは割り当てであるため、私はむしろ答えを得るのではなく、コードのどの部分が間違っているのか、どのように修正するのですか。

EDIT:ここにサンプル出力があります。

サンプル出力#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

'input'、' actuall output'と 'expected output'を含めることができますか?これは、何が起こっているかどうかをチェックするだけで、あなたの譲り受けを理解するのを少し容易にします。 – SomeJavaGuy

+1

'a + = 2; b + = 2; 'なぜ2を加えていますか?潜在的な価値を無視しています。 – Manu

+0

@ KevinEsche - コードを理解する限り、入力はありません。出力は10個の乱数の配列(および検出されたパターンの数)です。提供できるベストは、パターン識別をテストするための例ですが、それはまだ問題ではないようです。 –

答えて

2

別のアレイのパターンを計算し、そしてmainあなたがされています異なる配列を印刷しています(insertNumbersは基本的に2回呼び出しています)。ここをクリックしてください:

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

また、あなたのパターンカウントが正しくないようです。ヒント:要素をインデックス1と2と比較しますか?

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); 
+0

最後の文章を読まなかったか*「これは課題なので、回答は得られませんが、コードのどの部分が間違っているのか、どのように修正するのですか?」* –

0

あなたはパターンを計算した後、再び機能insertNumbersを呼び出しているあなたのmain機能

int[] randomArray = insertNumbers(); 

からこの行を削除します。

関連する問題