c++自定义函数实现选出最大值和最小值

请问为什么回爆错?
想要编写函数 实现对传送过来的三个数选出最大值和最小值

一直报c语言错误:expected '{' at end of input

# include "stdio.h"
# define N 10
/*int choose (int a[],int n);*/
main()
{
int choose (int a[],int n)

{
int i,*p,min,max;
*p= a,min=max=a[0];
for(i=0;i<n;i++)
{
        if      (min<*(p+i)
            min=*(p+i);
        else if (max>*(p+1))
            max=*(p+i);
}
}
printf("min=%d,max%d",min,max)

int a1[N];
scanf("%d",&a1[N]);
choose (a[],N);
}


#include <stdio.h>

#define N 10

void choose(int a[], int n)
{
    int i, max=0, min=0;
    for(i=0; i<n; i++) {
        if(i==0)
            min=a[i];
        if(a[i]>max)
            max=a[i];
        if(a[i]<min)
            min=a[i];
    }
    printf("max=%d,min=%d\n",max,min);
}

int main()
{
    int a[N];
    int i;
    for(i=0; i<N; i++)
        scanf("%d", &a[i]);
    choose(a, N);
    return 0;
}