本文将为大家带来“自定义函数之字符类型统计”算法的一个解法与详细解释,方法不唯一,本篇文章只列举出一种方法,可以先练习,练习之后查看代码,这样更加有助于提高。
文章目录
- 一、题目
- 二、解题思路
- 三、代码(含详细注解)
- 四、小小总结
一、题目
题目描述:
输入10个整数,将其中最小的数与第一个数对换,
把最大的数与最后一个数对换。
写三个函数;
①输入10个数;
②进行处理;
③输出10个数。
输入:
10个整数
输出:
整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)
样例输入:
2 1 3 4 5 6 7 8 10 9
样例输出:
1 2 3 4 5 6 7 8 9 10
运行结果:
以下是本题的解题思路,仅供参考。
二、解题思路
(1)本题要求自定义方法,因此需要定义两个方法。
(2)先定义一个函数进行输入,并将输入的值传给处理函数。
(3)处理函数接受输入函数的值时,进行处理。
(4)处理函数首先找到最小值和最大值,然后依次与元素首位进行调换
具体写法在代码里有注解,可以参考。
三、代码(含详细注解)
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+" ");
}
}
}
四、小小总结
本题给出的代码可能较长,方法不唯一,但理解思路还是比较清晰。
主要要学会如何找出数组中的最大值和最小值。
其次要学会利用空数据进行位置交换。