c语言 对于一个给定的数列, 输出在这个数列里面排第二大的那个数。输入格式: 第1行:一个整数n(2<=n<=100000),表示数列的长度 第2行:有n个不相等的整数。
时间: 2024-02-03 20:03:10 浏览: 85
2022年3月电子学会少儿编程青少年软件编程C语言三级
5星 · 资源好评率100%
好的,这道题目可以使用C语言实现。具体的代码如下:
```c
#include <stdio.h>
int main() {
int n, max1 = -1000000, max2 = -1000000;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
int a;
scanf("%d", &a);
if (a > max1) {
max2 = max1;
max1 = a;
} else if (a > max2) {
max2 = a;
}
}
printf("%d", max2);
return 0;
}
```
这个程序的思路是,先读入n,表示数列的长度。然后使用两个变量max1和max2来分别记录当前遇到的最大值和次大值。对于每一个数a,如果它比当前的最大值max1还要大,就将max2更新为max1,同时将max1更新为a。如果a比当前的次大值max2还要大,就将max2更新为a。最终输出max2即为排名第二大的数。
需要注意的是,这个程序假设数列中的所有数都是不相等的。如果有重复的数出现,可能会出现错误的结果。
阅读全文