C语言,学校oj,答案错误,可以看看哪里错了吗?

img


问题网站:http://acm.hi-54.com/problem.php?pid=1122

#include<stdio.h>
void Remove(int a[],int n,int b[])
{
    for(int i=0; i<=n-1; i++)
    {
        for(int j=i+1; j<=n-1; j++)
        {
            if(a[i]==b[j])
                b[j]=b[j]+1;
        }
    }
}
int build(int a[],int n,int b[],int c[])
{
    int k=0;
    for(int i=0; i<=n-1; i++)
    {
        if(a[i]==b[i])
        {
            c[k]=a[i];
            k=k+1;
        }
    }
    return k;
}
void sort(int c[],int k)
{
    int med;
    for(int i=0; i<=k-1; i++)
    {
        for(int j=0; j<=k-1-i; j++)
        {
            if(c[j]>c[j+1])
                med=c[j],c[j]=c[j+1],c[j+1]=med;
        }
    }
}
int main()
{
    int N;
    scanf("%d",&N);
    int a[N],b[N];
    for(int i=0; i<=N-1; i++)
    {
        scanf("%d",&a[i]);
        b[i]=a[i];
    }
    Remove(a,N,b);
    int c[N];
    int w=build(a,N,b,c);
    sort(c,w);
    printf("%d\n",w);
    for(int i=0; i<=w-1; i++)
    {
        printf("%d",c[i]);
        if(i<=w-2)
            printf(" ");
    }
    return 0;
}