输入一个正整数 n,再输入 n 个整数,先将最小值与第一个数交换,再将最大值与最后一个 数交换,然后输出交换后的 n 个数。
时间: 2024-05-24 20:12:41 浏览: 51
实现如下:
n = int(input())
nums = list(map(int, input().split()))
# 找出最小值和最大值的索引
min_index = nums.index(min(nums))
max_index = nums.index(max(nums))
# 将最小值与第一个数交换,将最大值与最后一个数交换
nums[0], nums[min_index] = nums[min_index], nums[0]
nums[-1], nums[max_index] = nums[max_index], nums[-1]
# 输出交换后的 n 个数
for num in nums:
print(num, end=' ')
相关问题
java输入一个正整数 n,再输入 n 个整数,先将最小值与第一个数交换,再将最大值与最后一个 数交换,然后输出交换后的 n 个数。
在Java中,你可以通过Scanner类获取用户输入的整数和数组元素,然后使用数组排序算法找到最小值和最大值,最后进行交换操作。下面是一个简单的示例程序来实现这个需求:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入正整数n
System.out.println("请输入正整数n:");
int n = scanner.nextInt();
// 创建一个整数数组并输入n个元素
int[] nums = new int[n];
System.out.println("请输入" + n + "个整数:");
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
// 找到最小值和最大值
int min = nums[0], max = nums[0]; // 假设第一个元素即为最小和最大
for (int i = 1; i < n; i++) {
if (nums[i] < min) {
min = nums[i];
} else if (nums[i] > max) {
max = nums[i];
}
}
// 交换最小值与第一个数和最大值与最后一个数
nums[0] = min;
nums[n - 1] = max;
// 输出交换后的数组
System.out.println("交换后的数组为:");
for (int num : nums) {
System.out.print(num + " ");
}
// 关闭扫描器
scanner.close();
}
}
```
输入一个正整数n,再输入n个整数,将最小值与第一个数交换,最大值和最后一个数交换,然后输出交换以后的n个数。
好的,这是一道编程题,非常适合我这个AI来回答。下面是对应的Python代码:
```python
n = int(input())
lst = list(map(int, input().split()))
# 找到最小值和最大值
min_idx, max_idx = 0, 0
for i in range(1, n):
if lst[i] < lst[min_idx]:
min_idx = i
elif lst[i] > lst[max_idx]:
max_idx = i
# 交换最小值和第一个数,最大值和最后一个数
lst[0], lst[min_idx] = lst[min_idx], lst[0]
lst[-1], lst[max_idx] = lst[max_idx], lst[-1]
# 输出交换以后的n个数
print(' '.join(map(str, lst)))
```
如果有其他问题,我会尽力回答的。
阅读全文