输入n个数并判断最大素数,如果没有素数则输出0

#include <stdio.h>
#include <math.h>

int main()
{
int isPrime(int x);
int n,i;
scanf("%d",n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",a[i]);
}
int m;
m=a[0];
for(i=0;i<n;i++)
{
if(isPrime(a[i])==1&&m<a[i])
{
m=a[i];
}
else{
m=0;
}printf("%d",m)
}
return 0;
}
int isPrime(int x)
{
int i;
int flag=1;
for(i=2;i<sqrt(x);i++)
{
if(x%i==0)
flag=0;
}return flag;
}请问一下是哪个地方出了问题


#include <stdio.h>
#include <math.h>

int main()
{
    int isPrime(int x);
    int n, i;
    scanf("%d", &n);
    int a[n];
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    int m = 0;
    for (i = 0; i < n; i++)
    {
        if (isPrime(a[i]) && m < a[i])
        {
            m = a[i];
        }
    }
    printf("%d", m);
    return 0;
}
int isPrime(int x)
{
    if(x <= 1) return 0;
    int i;
    for (i = 2; i <= sqrt(x); i++)
    {
        if (x % i == 0)
            return 0;
    }
    return 1;
}