c语言删除数组中重复次数最多的元素

输入一个整数n(n>0),然后接着输入n个正整数,这其中会有重复数字,请删除出现次数最多的正整数然后将其他数按原来的顺序输出,若有两个正整数出现次数相同且最大,则均删除。
 
样例:
输入1:
2 2 5 1 3 2 5 1
输出1:
5 1 3 5 1
输入2:
3 4 4 4 2 3 3
输出2:
2
输入3:
2 2 2 3 3 3
输出3:
0


#include <stdio.h>
#define N 100000
int main()
{
    int n;
    int a[N],c[N];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        c[i]=1;
    }
    int max = 1;
    for(int i=0;i<n;i++){
        for(int j=i+1;j<n;j++){
            if(a[j]==a[i]){
                c[i]++;
                if(max<c[i])max=c[i];
                c[j]=c[i];
            }
        }
    }
    int k=0;
    for(int i=0;i<n;i++){
        if(c[i]==max)continue;
        printf("%d ",a[i]);
        k++;
    }
    if(k==0)printf("0");
}

先循环比较出重复次数最多的若干个数,然后再循环变量数组,如果是重复次数最多的数则不输出