【问题标题】:Adding the code for ascending order of user input添加用户输入升序的代码
【发布时间】:2020-12-29 08:16:23
【问题描述】:
import java.util.Scanner;
import java.util.Arrays;
public class searchSorting 
{
    public static void main (String[]args)
    {
        String line;
        Scanner in = new Scanner(System.in);

        System.out.print("How many numbers you want to input?: ");
        line = in.nextLine();
        System.out.print("Input Number 1: " );
        line = in.nextLine();
        System.out.print("Input Number 2: ");
        line = in.nextLine();
        System.out.print("Input Number 3: " );
        line = in.nextLine();
        System.out.print("Input Number 4: ");
        line = in.nextLine();
        System.out.print("Input Number 5: " );
        line = in.nextLine();
    }
    public static void sortAscending (double[]arr)
    {
        Arrays.sort(arr); 
        System.out.printf("Sorted arr[] = %s", 
        Arrays.toString(arr)); 

}}

我被困在将用户输入的内容按升序排列的代码上。我已经查找并按升序尝试了多种资源,但似乎没有任何效果。我试过了:

System.out.print("Input number 1: "+(i+1+":");

尝试添加输入而不是全部写出,但我是一个未知变量。

【问题讨论】:

    标签: java arrays


    【解决方案1】:

    您应该使用数组来存储输入并使用循环来读取输入。

    System.out.print("How many numbers you want to input?: ");
    int num = in.nextInt();
    double[] arr = new double[num];
    for(int i = 0; i < num; i++){
       arr[i] = in.nextDouble();
    }
    sortAscending(arr);
    

    【讨论】:

      【解决方案2】:

      你必须创建一个数组。然后将您正在读取的内容放入数组中,然后调用您的方法。

      System.out.print("How many numbers you want to input?: ");
      int amount = Integer.parseInt(in.nextLine());
      double[] values = new double[amount];
      
      for (int i = 0; i < values.length; i++) {
          System.out.print("Input Number " + i + ": ");
          values[i] = Double.parseDouble(in.nextLine());
      }
      
      sortAscending(values);
      

      注意sortAscending这个名字并不准确,它不仅仅是排序(然后返回结果或就地),还有打印。所以也许你应该把它重命名为sortAndPrintAscending。或者只是对其进行排序,然后让您的main 方法打印。

      或者完全放弃它,该方法实际上并没有任何用途,因为它只是调用Arrays.sort,还不如在main中这样做:

      System.out.print("How many numbers you want to input?: ");
      int amount = Integer.parseInt(in.nextLine());
      double[] values = new double[amount];
      
      for (int i = 0; i < values.length; i++) {
          System.out.print("Input Number " + i + ": ");
          values[i] = Double.parseDouble(in.nextLine());
      }
      
      Arrays.sort(values);
      System.out.println("Sorted: " + Arrays.toString(values));
      

      【讨论】:

      • @kayaruth 谢谢,已更正。但实际上,这些错误非常小。您可以通过阅读和理解代码自己弄清楚这一点。还是有什么不清楚的地方?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 2012-06-12
      • 2017-10-27
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多