2016-07-10 134 views
1

這裏是一個非常簡單的java程序,我聲明任何數組有7個元素,輸入前六個,移動第四到第六個元素到第五到第七個位置,並獲得第四個空位:簡單數組插入程序產生不正確的輸出

int A[]=new int[7]; 
     for(int i=0;i<6;i++) 
     { 
      System.out.println("Enter an integer"); 
      String a=Biff.readLine(); 
      A[i]=Integer.parseInt(a); 
     } 
     for(int i=4;i<6;i++) 
     { 
      A[i]=A[i+1]; 
     } 
     System.out.println("Enter the integer to be inserted"); 
     String a=Biff.readLine(); 
     A[4]=Integer.parseInt(a); 

但是,當所有的數組元素都打印出來,第六和第七個位置是0,我不知道爲什麼。理由和修復將不勝感激。 注意:我不能使用任何數組方法,必須保持它非常簡單。

  • 輸入:1,2,3,4,5,6;然後1;
  • 所需輸出:1,2,3,4,5,1,6;
  • 實際輸出:1,2,3,4,1,0,0;
+1

*「第六和第七個位置是0 *」您期望*他們是什麼?顯示您的輸入,輸出和*期望*輸出,並突出顯示我們的差異。 –

回答

5

你最初的環沒有任何分配到第7元,所以它仍然爲0。

,以後你的第七元素複製到一個6

A[i]=A[i+1]; 

所以無論是第6和第七元素應該是0

更改環路:

for(int i=0;i<A.length;i++) 
    { //   ^^^^^^^^^------------------------ change is here 
     System.out.println("Enter an integer"); 
     String a=Biff.readLine(); 
     A[i]=Integer.parseInt(a); 
    } 
+0

嗯,對編輯感到抱歉。 –

+0

@PeterLawrey沒問題:) – Eran

+0

啊,好的,但我不能使用.length(),那麼我會如何解決它呢? –

0

您正在以錯誤的方式移動值。使用此代碼並瞭解您的錯誤:

for(int i=6;i>=3;i--) //Moving the 4th to 6th elements to 5th to 7th elements 
    { 
     A[i]=A[i-1]; 
    } 
String a=Biff.readLine(); //Taking input for 4th empty position 
A[3]=Integer.parseInt(a); 

我希望我的問題得到了解答。

+0

嘗試過,但它仍然使第七個位置的值爲0. –

+0

只有當您輸入第6個值0時纔會發生,然後只有第7個值將爲0,因爲我們直接在第7個值中複製第6個值。再檢查一遍。 – VatsalSura

相關問題