需求:
1.分析以下需求并用代码实现:键盘录入数组长度(长度不小于2),创建该长度的int类型数组并使用随机数(1-100之间整数)
为数组元素赋值,将数组中最大值两边的元素进行交换,最小值两边的元素进行交换(如果最大值或最小值位于数组两端,则将最大值和最小值进行交换)输出数组,输出格式如下:[元素1,元素2,元素3...]
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("录入数组长度:");
int num = sc.nextInt();
if (num < 2) {
System.out.println("数组长度过小");
} else {
int[] arr = new int[num];
Random r = new Random();
for (int i = 0; i < num; i++) {
arr[i] = r.nextInt(100) + 1;
System.out.print(arr[i] + " ");
}
System.out.println();
int max = arr[0];
int min = arr[0];
int indexMax = 0;
int indexMin = 0;
for (int i = 1; i < num; i++) {
if (arr[i] > max) {
max = arr[i];
indexMax = i;
} else if (arr[i] < min) {
min = arr[i];
indexMin = i;
}
}
System.out.print("最大值" + max + " ");
System.out.println("最小值" + min);
System.out.println(indexMax + " " + indexMin);
if (indexMax == 0 || indexMax == num - 1 || indexMin == 0 || indexMin == num - 1) {
int temp = arr[indexMax];
arr[indexMax] = arr[indexMin];
arr[indexMin] = temp;
for (int i = 0; i < num; i++) {
System.out.print(arr[i] + " ");
}
} else {
int temp = arr[indexMax - 1];
arr[indexMax - 1] = arr[indexMax + 1];
arr[indexMax + 1] = temp;
int temp2 = arr[indexMin - 1];
arr[indexMin - 1] = arr[indexMin + 1];
arr[indexMin + 1] = temp2;
for (int i = 0; i < num; i++) {
System.out.print(arr[i] + " ");
}
}
}
}