2016-03-15 31 views
2

我一直在試圖弄清楚什麼是錯的,但我似乎無法弄清楚。本質上,我的代碼將讓用戶輸入N大小的數組。然後數組將被填充1-100的隨機數。我有一個printArray方法,它在一個固定數組上測試了一行數組,並且它可以工作,但是當我從生成的數組中調用它時,它給了我很多額外的0。 下面是代碼:調用單行打印數組的方法

Scanner scan = new Scanner(System.in); 
     System.out.println("Size of array:"); //prompts the user enter size of array 
     int size = scan.nextInt(); 
     int array[] = new int[size]; 

for (int i = 0; i < array.length; i++) { 
      array[i] = random.nextInt(100) + 1; 
      printArray(array); 

,這裏是顯示方法:

public static void printArray(int[] array) { 
    for (int i = 0; i < array.length; i++) { 

     if (i == 0) { 
      System.out.print(array[i]); 
     } 

     else if (i == array.length) { 
      System.out.print(array[i]); 
     } 

     else 
      System.out.print("," + array[i]); 

    } 
} 

當我運行的代碼就會產生這樣的輸出:(3爲例)

尺寸數組排序? 36,0,036,68,036,68,75,它應該是36,68,75。

回答

1

您正在一行中多次打印陣列。

在第一次迭代中,您打印36,0,0,在第二次迭代中,您打印36,68,0並且僅在最後一次迭代中打印完全初始化的數組 - 36,68,75

printArray(array);移動到循環的末尾。您可能需要在printArray的末尾添加println

for (int i = 0; i < array.length; i++) { 
    array[i] = random.nextInt(100) + 1; 
} 
printArray(array); 
+0

噢,我的天啊..我對於其他事情我都沒有意識到。非常感謝! *新手錯誤* – Anon54

+0

@ Anon54順便說一句,我不知道是否自己寫一個打印數組的方法是某些練習/作業的一部分。如果不是,你可以簡單地使用'System.out.println(Arrays.toString(array)));' – Eran

+0

我們被要求調用printArray方法來處理未排序和排序的列表,並且允許我們使用Arrays類。我會牢記這一點! – Anon54