从键盘输入n个整数,用函数编程实现最大值和最小值的交换,并打印结果。
时间: 2023-04-24 15:02:03 浏览: 155
可以使用以下函数实现最大值和最小值的交换:
def swap_max_min(nums):
max_num = max(nums)
min_num = min(nums)
max_index = nums.index(max_num)
min_index = nums.index(min_num)
nums[max_index] = min_num
nums[min_index] = max_num
return nums
其中,max()和min()函数分别返回列表中的最大值和最小值,index()函数返回元素在列表中的索引。最后,将最大值和最小值交换,并返回新的列表。
使用该函数,可以实现以下功能:
n = int(input("请输入整数个数:"))
nums = []
for i in range(n):
num = int(input("请输入第{}个整数:".format(i+1)))
nums.append(num)
new_nums = swap_max_min(nums)
print("交换后的结果为:", new_nums)
首先,输入整数个数n,然后循环n次,输入n个整数,并将它们存储在列表nums中。接下来,调用swap_max_min()函数,将最大值和最小值交换,并返回新的列表new_nums。最后,打印交换后的结果。
相关问题
利用swap函数从键盘输入10个整数用函数编程实现计算其最大值和最小值
以下是一个利用 `swap()` 函数从键盘输入 10 个整数并计算最大值和最小值的函数实现:
```c++
#include <iostream>
using namespace std;
// 定义 swap() 函数
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
// 定义计算最大值和最小值的函数
void getMaxMin(int arr[], int len, int& maxVal, int& minVal) {
maxVal = minVal = arr[0]; // 初始化最大值和最小值为数组第一个元素
for (int i = 1; i < len; i++) {
if (arr[i] > maxVal) {
swap(arr[i], maxVal); // 如果当前元素比最大值大,则交换它们
}
if (arr[i] < minVal) {
swap(arr[i], minVal); // 如果当前元素比最小值小,则交换它们
}
}
}
int main() {
int arr[10];
cout << "请输入 10 个整数:" << endl;
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
int maxVal, minVal;
getMaxMin(arr, 10, maxVal, minVal);
cout << "最大值为:" << maxVal << endl;
cout << "最小值为:" << minVal << endl;
return 0;
}
```
这个程序首先定义了一个 `swap()` 函数,用于交换两个整数的值。然后定义了一个 `getMaxMin()` 函数,用于计算一个整数数组的最大值和最小值。在 `getMaxMin()` 函数中,我们首先将最大值和最小值初始化为数组的第一个元素,然后遍历数组中的每个元素,如果当前元素比最大值大,则交换它们,如果当前元素比最小值小,则交换它们。最后,在 `main()` 函数中,我们从键盘输入 10 个整数,并调用 `getMaxMin()` 函数计算它们的最大值和最小值,最后将结果输出。
从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置
可以使用以下步骤实现:
1. 定义一个函数,接受一个整数数组作为参数,返回最大值和最小值的元组。
2. 在函数中,使用循环遍历数组,找到最大值和最小值,并记录它们的索引。
3. 在函数中,使用元组交换的方式,将最大值和最小值所在的位置互换。
4. 在主程序中,从键盘输入10个整数,将它们存储在一个数组中。
5. 调用函数,计算最大值和最小值,并互换它们所在数组中的位置。
6. 输出交换后的数组。
以下是示例代码:
```python
def find_max_min(arr):
max_val = arr[0]
min_val = arr[0]
max_idx = 0
min_idx = 0
for i in range(1, len(arr)):
if arr[i] > max_val:
max_val = arr[i]
max_idx = i
elif arr[i] < min_val:
min_val = arr[i]
min_idx = i
arr[max_idx], arr[min_idx] = arr[min_idx], arr[max_idx]
return (max_val, min_val)
arr = []
for i in range(10):
num = int(input("请输入第%d个整数:" % (i+1)))
arr.append(num)
max_val, min_val = find_max_min(arr)
print("最大值:%d,最小值:%d" % (max_val, min_val))
print("交换后的数组:", arr)
```
运行结果示例:
```
请输入第1个整数:5
请输入第2个整数:3
请输入第3个整数:8
请输入第4个整数:2
请输入第5个整数:9
请输入第6个整数:1
请输入第7个整数:7
请输入第8个整数:4
请输入第9个整数:6
请输入第10个整数:0
最大值:9,最小值:0
交换后的数组: [5, 3, 8, 2, 0, 1, 7, 4, 6, 9]
```