按升序输出素数,代码为什么错了

#include <stdio.h>
//对数组赋值
void array(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
}
//排序
void sort( int a[], int n )
{
int i,temp,j,k;
for(i=0;i<n;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(a[j]<a[k])
{
k=j;
}
if(k!=i)
{
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
}
}
}
//判断素数
int judge(int n)
{
int j;

if(n==1)
{
    return 0;
}
else 
{
    for(j=2;j<n;j++)
    {
        if(n%j==0)
            {
                return 0;
                break;
            }
        }
        return 1;
    }

}
//输出
void print(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
if(judge(a[i])==1)
{
printf("%4d",a[i]);
}
}
}
int main()
{
int a[10];
array(a,10);
sort(a,10);
print(a,10);
return 0;
}
求问大佬哪里错了啊,PTA给答案报错

img

img

题目给出来啊