用C语言编写程序,从一个降序的整数序列中找出第二大的数(第一大的数可以有多个)。
时间: 2023-05-29 16:02:27 浏览: 103
```c
#include <stdio.h>
int main()
{
int n; // 序列长度
printf("请输入序列长度:");
scanf("%d", &n);
int max1 = -1, max2 = -1; // 最大数和次大数
int num; // 当前输入的数
printf("请输入降序序列:");
for (int i = 0; i < n; i++)
{
scanf("%d", &num);
if (num > max1)
{
max2 = max1;
max1 = num;
}
else if (num > max2 && num != max1)
{
max2 = num;
}
}
if (max2 == -1)
{
printf("无次大值。\n");
}
else
{
printf("第二大的值为:%d\n", max2);
}
return 0;
}
```
说明:本程序中,首先初始化 `max1` 和 `max2` 为 -1(不可能存在的数),然后依次输入序列中的数。对于每个输入的数,如果它比当前的最大数 `max1` 大,则将 `max1` 更新为它,同时将原来的 `max1` 更新为 `max2`;如果它比 `max2` 大但不比 `max1` 大,则将 `max2` 更新为它。这样,最终得到的 `max2` 就是次大的数。若不存在次大数,则输出提示信息。
阅读全文