想问下这个自定义的max 函数哪里有问题

#include<stdio.h>
//自定义函数输出10个数中的最大值
int main()
{   int max(int a[10]);
    int a[10],b,i;
      printf("请输入任意10个整数\n");
      for(i=0;i<10;i++)
          scanf("%d",&a[i]);
          b=max(a);
          printf("最大的数=%d\n",b);
          return 0;
}
int max(int a[10])
{    int i,m,j;
    for( i=0;i<10;i++)
    { 
       for(j=i+1;j<10;j++)
       {
           if(a[i]<a[j])
               m=a[j];
       }
        
    }
    return m;
        
}

供参考:

int max(int a[10])
{
    int i,m;
    m = a[0];
    for( i=0;i<10;i++)
       {
           if(a[i]>m)
               m=a[i];
       }
    return m;
}

 

#include <stdio.h>
#include <stdlib.h>
//自定义函数输出10个数中的最大值

int max(int a[10]);

int main(){   
    int a[10],b,i;
      printf("请输入任意10个整数\n");
      for(i=0;i<10;i++)
          scanf("%d",&a[i]);

          b=max(a);
          printf("最大的数=%d\n",b);

          system("pause");
          return 0;
}

int max(int a[10])
{    int i,m,j;
    for( i=0;i<10;i++)
    { 
       for(j=i+1;j<10;j++)
       {
           if(a[i] < a[j])
               m=a[j];
       }
        
    }
      return m;  
}

我只能说代码问题很大