数组分为堆上数组和栈上数组,x=a[0]x在堆上,a[0]在栈上.
题目很简单,关键是思路
先找出最大值、最小值,并记住其位置
再做交换
具体参考下列代码
import java.util.Arrayspublic class Test {
/**
* @param args
*/
public static void main(String[] args) {
// 第一步:定义数组
int[] arrs = { 6, 2, 9, 15, 1, 5, 20, 7, 18 }
// 第二步:找出最大值、最小值
int maxIndex = 0 // 最大值初始索引 = 0
int max = arrs[maxIndex]
int minIndex = 0 // 最小值初始索引 = 0
int min = arrs[minIndex]
for (int i = 1 i < arrs.length i++) {
if (arrs[i] > max) {
max = arrs[i]
maxIndex = i
}
if (arrs[i] < min) {
min = arrs[i]
minIndex = i
}
}
System.out.printf("第[%d]个值是最大值:%d \n", (maxIndex + 1), max)
System.out.printf("第[%d]个值是最小值:%d \n", (minIndex + 1), min)
System.out.println("开始交换最大值")
int end = arrs[arrs.length - 1] // 记录最后一个元素值
arrs[arrs.length - 1] = max // 最后一个元素值 = max
arrs[maxIndex] = end // 原最大值 = 最后一个值
int start = arrs[0] // 记录第一个元素值
arrs[0] = min // 第一个元素值 = min
arrs[minIndex] = start // 原最小值 = 第一个值
System.out.println("最终结果:")
System.out.println(Arrays.toString(arrs))
}
}
亲,答题也需要时间和精力,如果回答满意,请及时采纳,你的合作是我回答的动力!! 谢谢!!