2014-11-21 6 views
0

Проблемы у меня с моей программой, когда я печатаю все цифры, то первое число вхожу дублируются дважды и заменяет 2-й номерСортировать массив целых чисел

Ex. Если я вхожу в 1,3,5,7,9,11,13,15,17,19 Выход составляет 1,1,5,7,9,11,13,15,17,19

Как можно Я это исправить?

import java.util.Scanner; 
import java.util.Arrays; 

public class InputSort_Integers 
{ 
public static void main(String[] args) 
{ 
    // Declarations 
     final int[] count = new int [10]; 

    // Scanner 
    Scanner scanner = new Scanner(System.in); 

    // Scanner Loop 
    for (int i = 0; i < count.length; i++) 
    { 

     System.out.print("Enter " + count.length + " numbers (Press enter after each entry): "); 
     count[i] = scanner.nextInt();  

    } 

    // Print sorted number 
    int sorted = printNumbers(count);             

} 

public static int printNumbers(int[] count) 
{ 

    // Print loop 
    for (int i=0; i<count.length; i++) 
    { 
     System.out.println(count[i]); 
    // Sort Numbers 
     Arrays.sort(count); 

    } 
return count.length; 
} 

} 
+1

Это не делается, когда я запускаю его: http://ideone.com/SLds9F – irrelephant

+0

Вы уверены, что это не было «1,0,5,7,9,11,13,15,17, Вы вошли? –

ответ

1

Вы печатаете первое число, которое затем сортируется из цикла. Вы должны сортировать числа один раз, прежде чем цикл начнется. Измените метод printNumbers к этому:

public static int printNumbers(int[] count) 
{ 
    // Sort Numbers 
    Arrays.sort(count); 

    // Print loop 
    for (int i=0; i<count.length; i++) 
    { 
     System.out.println(count[i]); 
    } 
    return count.length; 
} 
0

Вы только позвоните Arrays.sort один раз, а не каждый проходит через петлю. Исправленные printNumbers:

public static int printNumbers(int[] count) 
{ 
    // Sort Numbers 
    Arrays.sort(count); 

    // Print loop 
    for (int i = 0; i < count.length; ++i) 
    { 
     System.out.println(count[i]); 
    } 

    return count.length; 
} 
0

Вы звоните Arrays.sort(count); внутри ваш цикл, когда вы, вероятно, хотите, чтобы называть его до того, как цикл вместо этого. Когда я удалил эту строку, она устранила проблему.

Смежные вопросы