用java语言实现输入一个正整数 n,再输入 n 个整数,先将最小值与第一个数交换,再将最大值与最后一个 数交换,然后输出交换后的 n 个数。 例输入: 6 34 45 67 37 23 2 输出: 2 45 34 37 23 67
时间: 2025-06-09 21:00:03 浏览: 15
您可以按照以下步骤用Java实现所需的逻辑:
1. 创建Scanner接收用户输入和一组整数n以及n个整数。
2. 预备性操作,定义一个`swap()`方法用于两个整数之间的互换,并创建一个数组来存储用户输入的n个整数。
```java
public void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
```
3. 按照题目要求,首先找到数组中的最小值并与其他值交换。
```java
int minIndex = 0;
for (int i = 1; i < nums.length; i++) {
if (nums[minIndex] > nums[i]) {
minIndex = i;
}
}
// Swap the smallest number with the first one.
swap(nums, 0, minIndex);
```
4. 接着,找到数组中的最大值并与倒数第1个值交换。
```java
int maxIndex = nums.length - 1;
for (int i = nums.length - 2; i >= 0; i--) {
if (nums[maxIndex] < nums[i]) {
maxIndex = i;
}
}
// Swap the largest number with the last one.
swap(nums, maxIndex, nums.length - 1);
```
5. 最后,输出经过修改后的数组。
```java
System.out.print("Output after swapping:\n");
for (int num : nums) {
System.out.print(num + " ");
}
```
完整代码实现如下:
```java
import java.util.*;
public class Main {
public void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer n: ");
int n = scanner.nextInt();
int[] arr = new int[n];
System.out.print("Enter " + n + " integers: ");
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}
Main obj = new Main();
obj.swap(arr, 0, findMinIndex(arr));
obj.swap(arr, arr.length - 1, findMaxIndex(arr));
System.out.println("After swapping:\n" + Arrays.toString(arr));
}
// Find minimum index in array
private static int findMinIndex(int[] nums) {
int minIndex = 0;
for (int i = 1; i < nums.length; i++) {
if (nums[minIndex] > nums[i]) {
minIndex = i;
}
}
return minIndex;
}
// Find maximum index in array
private static int findMaxIndex(int[] nums) {
int maxIndex = nums.length - 1;
for (int i = nums.length - 2; i >= 0; i--) {
if (nums[maxIndex] < nums[i]) {
maxIndex = i;
}
}
return maxIndex;
}
}
```
输入样例:
``` shell
6
34 45 67 37 23 2
```
输出样例(注意顺序会不同):
``` output
After swapping:
2 45 67 34 23 37
```
阅读全文
相关推荐


















