1. 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,然后输出数组。
2.代码运行结果如下:
3. 代码如下:
1)主函数:
public static void main(String[] args) {
int[] a = new int[5];
//输入数组
input(a);
System.out.println("a=" + Arrays.toString(a));
//交换最大最小元素
change(a);
//输出数组
System.out.println("array=" + Arrays.toString(a));
}
2)输入数组:
private static void input(int[] a) {
System.out.println("请输入5个整数:");
Scanner in = new Scanner(System.in);
for (int i = 0; i < a.length; i++) {
a[i] = in.nextInt();
}
}
3)交换元素:
private static void change(int[] a) {
int index_max = 0;
int index_min = 0;
int length = a.length;
//记录最大数和最小数的下标
for (int i = 0; i < length; i++) {
if (a[index_max] < a[i]){
index_max = i;
}
if (a[index_min] > a[i]){
index_min = i;
}
}
//交换最大数到第一位。为节省内存空间,没有用临时变量,直接用两个元素进行交换
if (index_max != 0 ){
a[0] = a[index_max] +a[0];
a[index_max] = a[0] - a[index_max];
a[0] = a[0] -a[index_max];
}
//交换最小数到最后一位。为节省内存空间,没有用临时变量,直接用两个元素进行交换
if (index_min != (length-1) ){
a[length-1] = a[index_min] +a[length-1];
a[index_min] = a[length-1] - a[index_min];
a[length-1] = a[length-1] -a[index_min];
}
}