簡體   English   中英

排序整數數組

[英]Sort array of integers

我的程序遇到的問題是當我打印所有數字時,我輸入的第一個數字被重復兩次並替換了第二個數字

防爆。 如果我輸入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;
} 

}

您正在打印第一個數字,然后從循環內進行排序。 在循環開始之前,您應該對數字進行一次排序。 將您的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;
}

您只調用一次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;
} 

您正在調用Arrays.sort(count); 在您的for循環中,當您可能想在for循環之前調用它時。 當我刪除此行時,它解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM