问题描述
在一组数据中,寻找第二大的数和第二小的数。
输入描述
输入一个整数n,再输入n个整数。n是一个大于1且小于200之间的整数。
输出描述
输出n个整数中第二大的数和第二小的数。
样例输入
5 1 1 2 3 4
样例输出
3 2
代码如下:
#include<stdio.h>
int main()
{
int A[200][2];
int *max,*nmax,*min,*nmin;
int n;
scanf("%d",&n);
int i;
for(i=0;i<n;++i)
{
scanf("%d",A+i);
}
max=min=nmax=nmin=A[0];
for(i=1;i<n;++i)
{
if(A[i][0]>*max)
{
nmin=max=A[i];
continue;
}
if(A[i][0]<*min)
{
nmax=min=A[i];
continue;
}
}
for(i=0;i<n;++i)
{
if(A[i][0]<*max&&A[i][0]>*nmax)
{
nmax=A[i];
}
if(A[i][0]>*min&&A[i][0]<*nmin)
{
nmin=A[i];
}
}
printf("%d %d",*nmax,*nmin);
return 0;
}