输入一个整数列表求出其中的最大值和次最大值
时间: 2023-09-19 11:06:27 浏览: 188
### 回答1:
可以使用以下 Python 代码来实现:
``` python
def find_max_two(nums):
max1 = max2 = float('-inf')
for num in nums:
if num > max1:
max2 = max1
max1 = num
elif num > max2:
max2 = num
return max1, max2
nums = [3, 5, 1, 10, 8, 9]
max1, max2 = find_max_two(nums)
print("最大值:", max1)
print("次大值:", max2)
```
输出:
```
最大值: 10
次大值: 9
```
该函数 `find_max_two(nums)` 接受一个整数列表 `nums` 作为参数,使用两个变量 `max1` 和 `max2` 分别记录最大值和次大值。
遍历整数列表 `nums`,对于每个数,如果它大于最大值 `max1`,则将 `max2` 更新为原来的 `max1`,`max1` 更新为当前数;否则,如果它大于次大值 `max2`,则将 `max2` 更新为当前数。
最后返回 `max1` 和 `max2` 即可。
### 回答2:
使用Python编程语言,下面是一种实现方法:
```python
def find_second_largest(lst):
# 初始化最大值和次最大值为列表中的前两个元素
if lst[0] > lst[1]:
max_value = lst[0]
second_max_value = lst[1]
else:
max_value = lst[1]
second_max_value = lst[0]
# 遍历列表中的其他元素
for i in range(2, len(lst)):
# 如果当前元素大于最大值,则将最大值更新为当前元素,次最大值更新为原最大值
if lst[i] > max_value:
second_max_value = max_value
max_value = lst[i]
# 如果当前元素大于次最大值但小于最大值,则将次最大值更新为当前元素
elif lst[i] > second_max_value:
second_max_value = lst[i]
return max_value, second_max_value
# 测试
lst = [1, 5, 3, 8, 2, 7]
max_value, second_max_value = find_second_largest(lst)
print("最大值:", max_value)
print("次最大值:", second_max_value)
```
以上代码首先将列表中的前两个元素分别作为最大值和次最大值进行初始化。然后从第三个元素开始遍历,如果当前元素大于最大值,则将最大值更新为当前元素,并将次最大值更新为原最大值。如果当前元素大于次最大值但小于最大值,则将次最大值更新为当前元素。最终返回最大值和次最大值。以上示例列表中,最大值为8,次最大值为7。
### 回答3:
要求输入一个整数列表,然后找出其中的最大值和次最大值。我们可以通过遍历列表的方式来找到最大值和次最大值。
首先,我们可以假设列表中的第一个整数为最大值,并将其赋值给一个变量max_value。接着,我们再假设列表中的第二个整数为次最大值,并将其赋值给一个变量second_max。
之后,我们可以使用一个for循环来遍历整个列表,从第三个整数开始。每次迭代中,我们将当前整数与max_value进行比较。如果当前整数大于max_value,那么将其赋值给max_value,并将原max_value的值赋给变量second_max。否则,如果当前整数小于max_value但大于second_max,那么将其赋值给second_max。
最后,当循环结束后,我们可以输出最大值和次最大值,即max_value和second_max。
以下是一个简单的Python代码示例:
```python
def find_max_two(nums):
max_value = nums[0]
second_max = nums[1] if nums[1] < nums[0] else nums[0]
for num in nums[2:]:
if num > max_value:
second_max = max_value
max_value = num
elif num > second_max:
second_max = num
return max_value, second_max
nums = [10, 24, 36, 74, 15]
max_value, second_max = find_max_two(nums)
print("最大值:", max_value)
print("次最大值:", second_max)
```
以上代码输出结果为:
```
最大值: 74
次最大值: 36
```
这样,我们就成功找到了输入整数列表中的最大值和次最大值。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)