交换最大、最小值。输入一个正整数n(1<n≤10),再输入n个整数(<=999),将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。
时间: 2023-05-31 11:20:08 浏览: 171
### 回答1:
题目描述:给定一个正整数n和n个整数,将其中的最小值与第一个数交换,最大值与最后一个数交换,输出交换后的n个数。
解题思路:首先找到最小值和最大值的下标,然后进行交换即可。
代码实现:
n = int(input()) # 输入n
nums = list(map(int, input().split())) # 输入n个整数
min_index = nums.index(min(nums)) # 找到最小值的下标
max_index = nums.index(max(nums)) # 找到最大值的下标
# 交换最小值和第一个数
nums[], nums[min_index] = nums[min_index], nums[]
# 如果最大值的下标是,说明最大值已经在第一个数了,需要重新找到最大值的下标
if max_index == :
max_index = nums.index(max(nums[1:])) + 1
# 交换最大值和最后一个数
nums[-1], nums[max_index] = nums[max_index], nums[-1]
# 输出交换后的n个数
print(*nums)
### 回答2:
这道题目我们可以分为以下几个步骤来进行演示:
1. 输入数据
首先我们需要输入一个正整数n,这个n表示接下来会输入n个整数。接着我们使用一个数组来存储这n个整数。
2. 寻找最大值和最小值
我们可以使用循环来遍历整个数组,同时维护一个最大值和最小值的变量。如果发现比当前最大值还要大的数,就将最大值更新为这个数;如果发现比当前最小值还要小的数,就将最小值更新为这个数。
3. 交换最大值和最小值
我们需要分别将第一个数与最小值交换,最后一个数与最大值交换。
4. 输出结果
最后我们输出交换后的整个数组。
下面是这个题目的代码实现:
```
#include <iostream>
using namespace std;
int main()
{
int n, a[10];
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int max = a[0], min = a[0];
int maxIndex = 0, minIndex = 0;
for (int i = 0; i < n; i++)
{
if (a[i] > max)
{
max = a[i];
maxIndex = i;
}
if (a[i] < min)
{
min = a[i];
minIndex = i;
}
}
int temp = a[0];
a[0] = min;
a[minIndex] = temp;
temp = a[n-1];
a[n-1] = max;
a[maxIndex] = temp;
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
return 0;
}
```
需要注意的是,在进行交换的时候,我们需要记录下最大值和最小值的下标,方便进行交换。交换的逻辑是将第一个数与最小值交换,最后一个数与最大值交换。最后输出交换后的整个数组即可。
### 回答3:
题目要求我们输入一个正整数n,然后再输入n个整数。接下来需要对这n个整数进行处理,将其中的最小值与第一个数交换,将最大值与最后一个数交换。最后输出交换后的n个数。
为了解决这个问题,我们可以首先定义一个数组来存储输入的n个整数。定义一个变量min来保存数组中的最小值,定义一个变量max来保存数组中的最大值。然后遍历数组,找出其中的最小值和最大值,并记录它们所在的位置。
接着,我们可以将数组中的第一个数与最小值所在位置的数进行交换,将最后一个数与最大值所在位置的数进行交换。这样就可以完成题目要求的操作。
最后,我们可以输出交换后的n个数,来检验交换是否成功。
示例程序如下:
```python
n = int(input("请输入正整数n:"))
arr = []
for i in range(n):
num = int(input("请输入第{}个整数:".format(i+1)))
arr.append(num)
min_val = arr[0]
min_idx = 0
max_val = arr[0]
max_idx = 0
for i in range(1,n):
if arr[i] < min_val:
min_val = arr[i]
min_idx = i
if arr[i] > max_val:
max_val = arr[i]
max_idx = i
arr[0], arr[min_idx] = arr[min_idx], arr[0]
arr[n-1], arr[max_idx] = arr[max_idx], arr[n-1]
print("交换后的数组为:", arr)
```
需要注意的是,在程序中我们进行数组下标的操作,因此需要保证数组不为空,也需要保证最小值和最大值的位置在数组的范围内。同时,如果输入的n与数组的长度不一致,程序需要进行相应的异常处理。
阅读全文