使用扫描仪类需要用户输入Java中的排序方法 [英] Need a sort method in Java with user input using the scanner class

查看:127
本文介绍了使用扫描仪类需要用户输入Java中的排序方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要输出的最高值,最低值,平均值的方法,我需要一个排序方法。我试图把所谓的泡沫法,但它不工作了。任何人都知道其他种类的方法,我可以使用?

 进口java.util.Scanner中;公共类Arrayassignment {    公共静态无效的主要(字串[] args){
        扫描罪=新的扫描仪(System.in);        的System.out.println(数组大小输入intiger。);        INT数= sin.nextInt();        int数组[] =新INT [数字];        的System.out.println(数组大小+数字+启动\\ n);        的System.out.println(现在输入数组intigers。);
        的for(int i = 0; I<数;我++){
            数组[我] = sin.nextInt();        }        //System.out.println(\\ nLargest+ MAX(1,3,5));
        的System.out.println(排序+排序(阵列));
        的System.out.println(数组中的最高数字为+ MAX(阵列));
        的System.out.println(阵列中的最小数值为+分钟(阵列));
        的System.out.println(数字的阵列中的平均是+ AVG(阵列));
    }    公共静态INT排序(INT [] ARG){        的for(int i = 1; I< arg.length - 1;我++){
            对于(INT J = I + 1; J< arg.length; J ++){                如果(ARG [I]> ARG [J]){
                    INT安排= ARG [I]                    ARG [I] = ARG [J]。
                    ARG [J] =安排;                }
            }
        }
        返回安排;
    }    公共静态INT MAX(INT [] ARG){
        如果(arg.length == 0){
            的System.out.println(空实际参数的清单);
            返回0;
        }
        INT最大=精氨酸[0];
        的for(int i = 1; I< arg.length;我++){
            如果(精氨酸[Ⅰ]≥最大){
                最大= ARG [I]
            }
        }
        最大的回报;
    }    公共静态INT分钟(INT [] ARG){
        如果(arg.length == 0){
            的System.out.println(空实际参数的清单);
            返回0;
        }
        INT最小=精氨酸[0];
        的for(int i = 1; I< arg.length;我++){
            如果(精氨酸[1] - ;最小){
                最小= ARG [I]
            }
        }
        返回最小的;
    }    公共静态双平均值(INT ...... ARR){
        INT总和= 0;
        的for(int i = 0; I< arr.length;我++){
            总和+ =改编[I]
        }
        双平均=(双)之和/ arr.length;
        回到平均水平;
    }
}


解决方案

您可以使用任何排序方法为您的方便,根据您的要求。排序的数组可以很容易地拿起从排序阵列,第一元件和所述阵列的最后一个元素的最小值和最大值之后

有关计算,你必须使用不同的方法,你用或者您可以使用静态变量来计算排序方法内的总平均值。

转寄此code。

 公共类Arrayassignment {
    公共静态无效的主要(字串[] args){
        扫描罪=新的扫描仪(System.in);
        的System.out.println(数组大小输入intiger。);        INT数= sin.nextInt();        int数组[] =新INT [数字];        的System.out.println(数组大小+数字+启动\\ n);        的System.out.println(现在输入数组intigers。);
        的for(int i = 0; I<数;我++){
            数组[我] = sin.nextInt();
        }        sin.close();        的System.out.println(排序);
        printArray(数组); //前排序
        排序(数组);
        printArray(数组); //排序后
        的System.out.println(数组中最高的号码是+阵列[array.length - 1]);
        的System.out.println(阵列中的最小数目是+阵列[0]);
        的System.out.println(数字的阵列中的平均是+ AVG(阵列));
    }    公共静态无效的排序(INT [] ARG){
        INT安排;
        的for(int i = 0; I< arg.length - 1;我++)
            对于(INT J = I + 1; J< arg.length; J ++){                如果(ARG [I]> ARG [J]){
                    安排= ARG [I]
                    ARG [I] = ARG [J]。
                    ARG [J] =安排;
                }
            }
    }    公共静态双平均值(INT ...... ARR){
        INT总和= 0;
        的for(int i = 0; I< arr.length;我++){
            总和+ =改编[I]
        }
        双平均=(双)之和/ arr.length;
        回到平均水平;
    }   公共静态无效printArray(INT [] ARR){
      对于(int值:ARR){
         //根据自己的方便打印元件
         的System.out.println(值);
    }
}

要打印通过数组必须遍历数组。见上面code方法。

I have a method to output the highest value, lowest value, average value and I need a sort method. I have tried to put what is called a "bubble method" but it isn't working out. Anyone know other sort methods I can use?

import java.util.Scanner;

public class Arrayassignment {

    public static void main(String[] args) {
        Scanner sin = new Scanner(System.in);

        System.out.println("Enter an intiger for array size.");

        int number = sin.nextInt();

        int array[] = new int[number];

        System.out.println("Array size " + number + " initiated.\n");

        System.out.println("Now enter the array intigers.");
        for (int i = 0; i < number; i++) {
            array[i] = sin.nextInt();

        }

        //System.out.println ( "\nLargest " + max (1, 3, 5) ); 
        System.out.println("sorting" + sort(array));
        System.out.println("The highest number in the array is " + max(array));
        System.out.println("The smallest number in the array is " + min(array));
        System.out.println("The average of the numbers in the array is " + avg(array));
    }

    public static int sort(int[] arg) {

        for (int i = 1; i < arg.length - 1; i++) {
            for (int j = i + 1; j < arg.length; j++) {

                if (arg[i] > arg[j]) {
                    int arrange = arg[i];

                    arg[i] = arg[j];
                    arg[j] = arrange;

                }
            }
        }
        return arrange;
    }

    public static int max(int[] arg) {
        if (arg.length == 0) {
            System.out.println(" empty arguement list ");
            return 0;
        }
        int largest = arg[0];
        for (int i = 1; i < arg.length; i++) {
            if (arg[i] > largest) {
                largest = arg[i];
            }
        }
        return largest;
    }

    public static int min(int[] arg) {
        if (arg.length == 0) {
            System.out.println(" empty arguement list ");
            return 0;
        }
        int smallest = arg[0];
        for (int i = 1; i < arg.length; i++) {
            if (arg[i] < smallest) {
                smallest = arg[i];
            }
        }
        return smallest;
    }

    public static double avg(int... arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        double average = (double) sum / arr.length;
        return average;
    }
}

解决方案

You can use any sorting method as your convenient and according to your requirement. After sorted the array you can easily pick up the minimum and maximum value from the sorted array, first element and the last element of the array.

For calculate the average you have to use separate method as you used or you can use static variable to calculate the total inside the sorting method.

Refer this code.

    public class Arrayassignment {
    public static void main(String[] args) {
        Scanner sin = new Scanner(System.in);
        System.out.println("Enter an intiger for array size.");

        int number = sin.nextInt();

        int array[] = new int[number];

        System.out.println("Array size " + number + " initiated.\n");

        System.out.println("Now enter the array intigers.");
        for (int i = 0; i < number; i++) {
            array[i] = sin.nextInt();
        }

        sin.close();

        System.out.println("sorting");
        printArray(array); //Before sort
        sort(array);
        printArray(array); //After sort
        System.out.println("The highest number in the array is " + array[array.length - 1]);
        System.out.println("The smallest number in the array is " + array[0]);
        System.out.println("The average of the numbers in the array is " + avg(array));
    }

    public static void sort(int[] arg) {
        int arrange;
        for (int i = 0; i < arg.length - 1; i++)
            for (int j = i + 1; j < arg.length; j++) {

                if (arg[i] > arg[j]) {
                    arrange = arg[i];
                    arg[i] = arg[j];
                    arg[j] = arrange;
                }
            }
    }

    public static double avg(int... arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        double average = (double) sum / arr.length;
        return average;
    }

   public static void printArray(int[] arr) {
      for (int value : arr) {
         // print elements according to your convenient
         System.out.println(value);
    }
}

To print the array you have traversal through the array. See Above code method.

这篇关于使用扫描仪类需要用户输入Java中的排序方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆