帮我用c语音写一个代码,请按照以下要求对于一个给定的数列, 输出在这个数列里面排第二大的那个数。 输入格式: 第1行:一个整数n(2<=n<=100000),表示数列的长度 第2行:有n个不相等的整数。 输出格式: 一个整数, 表示在这个数列里面排第二大的那个数。 输入样例:
时间: 2023-06-01 14:03:08 浏览: 88
5
1 5 3 2 4
输出样例:
4
以下是一个C语言实现:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d", &n);
int *a = (int*)malloc(sizeof(int)*n);
for(int i=0; i<n; i++)
scanf("%d", a+i);
int max1=0, max2=0; //max1表示最大值,max2表示第二大的值
for(int i=0; i<n; i++)
{
if(a[i]>max1)
{
max2 = max1;
max1 = a[i];
}
else if(a[i]>max2 && a[i]!=max1)
{
max2 = a[i];
}
}
printf("%d\n", max2);
free(a);
return 0;
}
阅读全文