设计一个从三个整数类型数据中得到最大数值和次大数值的函数

#include <stdio.h>
int max(int a[3]);
int main()
{
int a[3]={6,8,5};
return 0;
}
int max(int a[3])
{
int temp;
if(a[0]<a[1])
{
temp=a[1];
a[1]=a[0];
a[0]=temp;
}
elseif(a[1]<a[2])
{
temp=a[2];
a[2]=a[1];
a[0]=a[2];
}
else(a[1]<a[2])
{
temp=a[2];
a[2]=a[1];
a[1]=temp;
}
printf("%d,%d",a[0],a[1]);
}
我想知道哪里不对


int max(int* a);    //数组只能传递指针,不能传 a[3] 这种 

void main()    //现在main函数都用void类型了,int main()是很久以前的版本 
{
    int a[3]={6,8,5};
    max(a);    //函数在这里调用 
    return;
}

int max(int* a)
{
    int i, j, temp;
    for (i = 0; i < 3; i++)    //简单排序一下 
    {
        for (j = i; j < 3; j++)
        {
            if (a[j] > a[i])
            {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    printf("%d,%d",a[0],a[1]);
}

1.没有调用函数
2.else if连在一起了
3.第三个判断else没有表达式