60.变态最大值

来源:互联网 发布:c语言中的volatile 编辑:程序博客网 时间:2024/04/30 14:40
#include<stdio.h>
#include<malloc.h>
int smax(int a,int b,int c)
{
int max;
max = (max = a>b?a:b)>c?max:c;
return max;
}
int smin(int a,int b,int c)
{
int max;
max = (max = a<b?a:b)<c?max:c;
return max;
}
int main()
{
int N;
int n;
int *a,*b;
int mark = 0;
while(scanf("%d",&N) != EOF)
{
fflush(stdin);
n = N/3;
a=(int *)malloc(sizeof(int)*N);
b=(int *)malloc(sizeof(int)*n);
int i=0;
int j=0;
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
i=0;
while(i<N)
{
if(mark%2)
{
b[j++]=smin(a[i],a[i+1],a[i+2]);
mark++;
}
else
{
b[j++]=smax(a[i],a[i+1],a[i+2]);
mark++;
}
i += 3;
}
int d=b[0];
for(i=1;i<n;i++)
{
if(d < b[i])
{
d=b[i];
}
}
printf("%d\n",d);
mark = 0;
}
return 0;
}
0 0