给定 nn 个正整数,输出它们中的第二大的数和第二小的数。
时间: 2023-02-08 16:09:21 浏览: 337
输入:
给定一个长度为 nn 的正整数数组 arr。
输出:
输出数组 arr 中的第二大的数和第二小的数。
算法:
1. 对数组进行排序
2. 输出数组的第二大的数,即 arr[n-2],和第二小的数,即 arr[1]
代码示例:
相关问题
给定 nn 个正整数,输出它们中的第二大的数和第二小的数。c++
如果你想在 C 语言中实现这个功能,你可以使用如下的代码:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int n;
printf("请输入数的个数:");
scanf("%d", &n);
int i;
int min1 = 1000000, min2 = 1000000; // 初始化为极大值
int max1 = -1000000, max2 = -1000000; // 初始化为极小值
for (i = 0; i < n; i++) {
int x;
scanf("%d", &x);
if (x < min1) {
min2 = min1;
min1 = x;
} else if (x < min2) {
min2 = x;
}
if (x > max1) {
max2 = max1;
max1 = x;
} else if (x > max2) {
max2 = x;
}
}
printf("第二大的数是:%d\n", max2);
printf("第二小的数是:%d\n", min2);
return 0;
}
```
其中,我们使用变量 `min1` 和 `min2` 分别记录最小值和第二小值,使用变量 `max1` 和 `max2` 分别记录最大值和第二大值。
在输入每个数时,我们比较它与当前的最小值和最大值,如果它比最小值小,就更新最小值和第二小值;如果它比最大值大,就更新最大值和第二大值。
最后,我们输出第二大的数和第二小的数即可。
给定 nn 个正整数,输出它们中的第二大的数和第二小的数。代码
我们可以用以下的 Python 代码来实现:
```
def second_largest(numbers):
# 对数字进行排序
sorted_numbers = sorted(numbers)
# 返回倒数第二个数字
return sorted_numbers[-2]
def second_smallest(numbers):
# 对数字进行排序
sorted_numbers = sorted(numbers)
# 返回第二个数字
return sorted_numbers[1]
# 测试
numbers = [1, 2, 3, 4, 5]
print(second_largest(numbers)) # 输出 4
print(second_smallest(numbers)) # 输出 2
```
这段代码将给定的数字列表进行排序,然后返回第二大的数或第二小的数。
阅读全文