2016-09-17 22 views
0

我試圖將整數數組中的負數更改爲其插槽/索引編號,然後打印出數組。另外我必須使用while循環。這是我到目前爲止,但現在我堅持。我在正確的軌道上覆制陣列嗎?我如何繼續,「改變[counter]」等於「counter」是否正確?或者我的想法錯了?當我運行得到錯誤如何將數組中的負數轉換爲其索引插槽

public class NegativeNumber { 
public static void main(String[] args) { 

    int[] wholeNumbers = {1, 4, 5, -2, -4, 6, 10, 3, -2}; 
    int counter = 0; 
    int negativeCounter = 0; 
    int sum = 0; 

while(counter < wholeNumbers.length) { 
    if(wholeNumbers[counter] < 0) 
    { 
    sum += wholeNumbers[counter]; 
    negativeCounter++; 
    } 
    counter++; 

    } 
System.out.println("Negative numbers: "+negativeCounter); 


int[] change = Arrays.copyOf(wholeNumbers, wholeNumbers.length); 

while(counter < change.length) { //get error 
    if(change[counter] < 0){ 
    change[counter]=counter; 
System.out.println(change[counter]); 
    } 
    } 
} 
} 
} 
+0

原始任務是使用此數組:INT [] wholeNumbers = {1,4,5,-2,-4,6,10,3 ,-2};並制定計算負數的計劃。然後,我應該改變負號碼到他們的插槽號碼並打印出來。 – Malene

+0

我編輯了我原來的帖子,試圖運行,但得到錯誤 – Malene

+0

你沒有在你的第二個循環中增加你的計數器 – Kelvin

回答

1
public static void main(String[] args) { 

    int[] wholeNumbers = {1, 4, 5, -2, -4, 6, 10, 3, -2}; 

    int negativeCount; 

    for(int i = 0; i < wholeNumbers.length; i++) { 
     if(wholeNumbers[i] < 0) { 
      negativeCount++; 

      wholeNumbers[i] = i; 
     } 
    } 
} 

隨着while

public static void main(String[] args) { 

    int[] wholeNumbers = {1, 4, 5, -2, -4, 6, 10, 3, -2}; 

    int negativeCount; 

    int idx = 0; 

    while(idx < wholeNumbers.length) { 
     if(wholeNumbers[idx] < 0) { 
      negativeCount++; 

      wholeNumbers[idx] = idx; 
     } 

     idx++; 
    } 
} 
+0

謝謝:)這兩個任務應該在同一個程序中,當我用你的代碼運行時出現錯誤:「wholeNumbers已經在main方法中定義了」。我該如何解決這個問題?當我嘗試:「int [] change = Arrays.copyOf(wholeNumbers,wholeNumbers.length);」,我得到錯誤「無法找到符號」。它應該在主體之外嗎? – Malene

+0

我不知道,也許不要定義兩次相同的變量?我給了你一個完整的工作例子,拿出你需要/不需要的部分。 – rorschach

0

這裏是:

import java.util.*; 

public class NegativeNumber { 
    public static void main(String[] args) 
    { 
     int[] wholeNumbers = {1, 4, 5, -2, -4, 6, 10, 3, -2}; 
     int counter = 0; 
     int negativeCounter = 0; 
     int sum = 0; 

     while(counter < wholeNumbers.length) 
     { 
      if(wholeNumbers[counter] < 0) 
      { 
       sum += wholeNumbers[counter]; 
       negativeCounter++; 
      } 
      counter++; 
     } 
     System.out.println("Negative numbers: "+negativeCounter); 

     int[] change = Arrays.copyOf(wholeNumbers, wholeNumbers.length); 
     counter = 0; // You forgot to reset this 
     while(counter < change.length) 
     { 
      if(change[counter] < 0) 
      { 
       change[counter]=counter; 
       System.out.println(change[counter]); 
      } 
      counter++; // You forgot to increment this 
     }// while 
    }// main 
} 

有兩個錯誤,需要進行重新設置的計數器變量當你需要再次增加它時(參見代碼中的註釋),將其設置爲零。

你的程序的輸出目前是:

Negative numbers: 3 
3 
4 
8 
相關問題