本文将为大家带来“自定义函数之字符类型统计”算法的一个解法与详细解释,方法不唯一,本篇文章只列举出一种方法,可以先练习,练习之后查看代码,这样更加有助于提高。


文章目录

  • 一、题目
  • 二、解题思路
  • 三、代码(含详细注解)
  • 四、小小总结



一、题目

题目描述:
输入10个整数,将其中最小的数与第一个数对换,
把最大的数与最后一个数对换。
写三个函数;
①输入10个数;
②进行处理;
③输出10个数。

输入:
10个整数

输出:
整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)

样例输入:
2 1 3 4 5 6 7 8 10 9

样例输出:
1 2 3 4 5 6 7 8 9 10

运行结果:

Lua 找到最小的数的索引号_java


以下是本题的解题思路,仅供参考。

二、解题思路

(1)本题要求自定义方法,因此需要定义两个方法。
(2)先定义一个函数进行输入,并将输入的值传给处理函数。
(3)处理函数接受输入函数的值时,进行处理。
(4)处理函数首先找到最小值和最大值,然后依次与元素首位进行调换

Lua 找到最小的数的索引号_最小值_02


Lua 找到最小的数的索引号_最小值_03

具体写法在代码里有注解,可以参考。

三、代码(含详细注解)

public class SeptemberFifteen41 {
    public static void main(String[] args) {
        //输入10个数
        inputNumber();
    }

    //输入10个数
    public static void inputNumber(){
        //创建控制台扫描器
        Scanner input  = new Scanner(System.in);
        //定义一个长度为10的数组
        int number [] = new int[10];
        // 输入10个数字
        for(int i=0 ;i<number.length ;i++){
            number[i]=input.nextInt();
        }
        handle(number);
    }

    //进行处理
    public static void handle(int number1[]) {
        int number[] = number1;
        //定义最大值和最小值
        int min = number[0];
        int max = number[0];
        //找出最小值
       for(int i=0 ;i<number.length ;i++){
           if(min>number[i]) {
               min = number[i];
           }

       }
       //找最大值
        for(int i=0 ;i<number.length ;i++){
            if(max<number[i]) {
                max = number[i];
            }
        }

        //最小值进行交换
        for(int i=0 ; i<number.length ;i++){
            //找到最小值所对应的下标
            if(min==number[i]){
                int temp = number[0];
                number[0]=number[i];
                number[i]=temp;
            }
        }
        //最大值进行交换
        for(int j=0 ; j<number.length ;j++){
            //找到最小值所对应的下标
            if(max==number[j]){
                int temp = number[number.length-1];
                number[number.length-1]=number[j];
                number[j]=temp;
            }
        }
        //调用输出函数
        outputNumber(number);

    }
    //输出函数
    public static void outputNumber(int result[]){
        for(int x:result){
            System.out.print(x+" ");
        }
    }
}

四、小小总结

本题给出的代码可能较长,方法不唯一,但理解思路还是比较清晰。
主要要学会如何找出数组中的最大值和最小值。
其次要学会利用空数据进行位置交换。