2016-11-10 15 views
-3

配列に問題があります。 更新:
配列Aから配列Bに、のインデックスとそれ以降のものであっても一様ではない要素を挿入する必要があります。 A [0]はB [10]、A 1 = B [0]、A [2] = B [11]などになります。 コードを更新しました(コメント、ヒント、提案ありがとうございました! )。Java:ある配列から別の配列に要素を挿入する方法(宿題)

 for (i=0; i<10; i++){ 
     if (i%2==1) 
     B[C-1]=A[i]; 
     C++; 
    } 

    for (i=0; i<10; i++){ 
      if (i%2==0) 
      B[C]=A[i]; 
      C++; 
     } 

これで、配列Bは塗りつぶされますが、それ以外の要素は1つおきになります。画像を見る:Right now output is like this

Bの配列をどのように埋めるのですか?

申し訳ありませんが、これがすべて馬鹿に聞こえる場合は、プログラミングを学び始めました。

+0

これは、配列 'B'を一杯にしますか? –

+0

多くの論理エラーは、AのインデックスがAの値ではなく、偶数である場合に比較しています。 – Dorus

+0

入力コードをテストして機能していれば、問題の必要な部分ではないので切り詰めます。私たちが見なければならないコードが少なくなればなるほど、誰かがいる可能性が高くなります。a)見苦しい、b)問題の発見。若いプレイヤーのためのヒント:あなたのifに '{}'を使うと、意図したとおりに明確にすることができます。 – John3136

答えて

0

これは最もエレガントで効率的な解決策ではありませんが、わかりやすく簡単に理解できると思います。

public static void main(String[] args) { 

    double[] a = {0,1,2,3,4,5,6,7,8,9}; 
    double[] b = new double[a.length]; 
    double[] tempArray = new double[a.length]; 

    int tempCounter = 0; 
    int indexCounter = 0; 

    for(int i = 0; i<a.length; i++){ 
     if (a[i] % 2 == 0){ // even 
      tempArray[tempCounter] = a[i]; 
      tempCounter++; 
     }else{ 
      b[indexCounter] = a[i]; 
      indexCounter++; 
     } 
    } 

    for(int i = 0; i<tempCounter; i++){ 
     b[indexCounter] = tempArray[i]; 
     indexCounter++; 
    } 
} 
0

ありがとうございました。私はすべての提案をしてから、正しくできました。

 for (i=1; i<20; i++){ 
     if (i%2==1){ 
     B[C]=A[i]; 
     C++; 
     } 
    } 
     for (i=0; i<19; i++){ 
      if (i%2==0){ 
      B[C]=A[i]; 
      C++; 
      } 

     } 
関連する問題