输入五个整数,其中最小的数与第一个数对换,最大的数与最后一个数对换
时间: 2023-12-04 16:53:27 浏览: 93
我不知道您想要的编程语言是什么,以下是Python的实现:
```python
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]
# 如果最大值下标是0,要先将最大值下标改为最小值下标
if max_index == 0:
max_index = min_index
# 交换最大值和最后一个数
nums[-1], nums[max_index] = nums[max_index], nums[-1]
print(nums)
```
示例输入:
```
5 3 8 2 7
```
输出:
```
[2, 3, 8, 5, 7]
```
相关问题
输入五个整数,其中最小的数与第一个数对换,最大的数与最后一个数对换,用C++写
#include <stdio.h>
int main() {
int a[5];
int minIndex = 0;
int maxIndex = 0;
// 输入五个整数
printf("请输入五个整数:\n");
for (int i = 0; i < 5; i++) {
scanf("%d", &a[i]);
}
// 找到最小数和最大数的下标
for (int i = 1; i < 5; i++) {
if (a[i] < a[minIndex]) {
minIndex = i;
}
if (a[i] > a[maxIndex]) {
maxIndex = i;
}
}
// 最小数与第一个数对换
int temp = a[0];
a[0] = a[minIndex];
a[minIndex] = temp;
// 最大数与最后一个数对换
temp = a[4];
a[4] = a[maxIndex];
a[maxIndex] = temp;
// 输出结果
printf("交换后的数组:\n");
for (int i = 0; i < 5; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
请用户输入5个整数,将其中最小的数字与第一个数对换,最大的数字与最后一个数对换。要求:除主函数外,写三个函数,一个函数负责输入5个数,一个函数负责对换最小的数字与第一个数,一个函数负责对换最大的数与
最后一个数。
好的,以下是代码实现:
```python
def input_nums():
nums = []
for i in range(5):
num = int(input("请输入第{}个整数:".format(i+1)))
nums.append(num)
return nums
def swap_min_first(nums):
min_index = nums.index(min(nums))
nums[], nums[min_index] = nums[min_index], nums[]
return nums
def swap_max_last(nums):
max_index = nums.index(max(nums))
nums[-1], nums[max_index] = nums[max_index], nums[-1]
return nums
if __name__ == '__main__':
nums = input_nums()
print("原始序列:", nums)
nums = swap_min_first(nums)
print("最小数与第一个数对换后:", nums)
nums = swap_max_last(nums)
print("最大数与最后一个数对换后:", nums)
```
运行结果如下:
```
请输入第1个整数:5
请输入第2个整数:2
请输入第3个整数:8
请输入第4个整数:1
请输入第5个整数:9
原始序列: [5, 2, 8, 1, 9]
最小数与第一个数对换后: [1, 2, 8, 5, 9]
最大数与最后一个数对换后: [1, 2, 8, 9, 5]
```
阅读全文