我想做给定一个大小为n的整数数组,找出其中所有出现超过[n/3 ]次的元素,为什么无法实现

#include"stdio.h"
void paixu(int p[],int mun)
{ int i,j,teap;
for(i=0;i<mun-1;i++)
for(j=0;j<=j-i-1;j++)
if(p[j]>p[j+1])
{ teap=p[j];
p[j]=p[j+1];
p[j+1]=teap;
}
}

int main()
{
int a[100],n,i,j=1;
printf("请输入要输入数字的个数\n");
scanf("%d",&n);
printf("请输入数字\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
paixu(a,n);
for(i=0;i<n;i++)
{
if(a[i]==a[i+1])
j++;
if(j>=3)
{
printf("%d",a[i]);
j=1;
}
}
}

img

#include"stdio.h"
void paixu(int p[],int mun)
{   int i,j,teap;
    for(i=0; i<mun-1; i++)
    {
        for(j=0; j<mun-1; j++)
        {
            if(p[j]>p[j+1])
            {
                teap=p[j];
                p[j]=p[j+1];
                p[j+1]=teap;
            }
        }
    }
    /*for(j=0; j<mun; j++)
    {
        printf("%d  ",p[j]);
    }*/

}

int main()
{
    int a[100],n,k,j=1;
    printf("请输入要输入数字的个数\n");
    scanf("%d",&n);
    printf("请输入数字\n");
    for(k=0; k<n; k++)
    {
        scanf("%d",&a[k]);
    }
    paixu(a,n);
    int l[35];
    int h=0;
    for(k=0; k<n; k++)
    {
        //printf("%d  ",a[k]);
        if(a[k]==a[k+1])
            j++;
        if(j>=3)
        {
            //printf("%d",a[k]);
            l[h]=a[k];
            h++;
            j=1;
        }
    }
    for(k=0; k<h; k++)
    {
        printf("%d  ",l[k]);
    }
}