为什么这个代码不能排序。

#include<stdio.h>
void paixu(int p[],int mun)
{ int i,j,teap;
for(i=1;i<mun;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;
}
}
void main()
{
int mun=4,a[4],i;
printf("请输入%d个数\n",mun);
for(i=0;i<mun;i++)
scanf("%d",&a[i]);
paixu(a,mun);
for(i=0;i<mun;i++)
printf("%d\t",a[i]);
}


#include<stdio.h>
void paixu(int p[],int mun)
{ 
    int i,j,teap;
    for(i=0;i<mun;i++)
        for(j=0;j<mun-1;j++)        //for(j=0;j<=j-i-1;j++)   j的值有问题
            if(p[j]>p[j+1])
            {     teap=p[j] ;
                p[j]=p[j+1];
                p[j+1]=teap;
            }
}
int main()
{
    int mun=4,a[4],i;
    printf("请输入%d个数\n",mun);
    for(i=0;i<mun;i++)
        scanf("%d",&a[i]);
    paixu(a,mun);
    for(i=0;i<mun;i++)      
        printf("%d\t",a[i]);
}

Firstly, you coded "j <= j - i - 1", which should be "j <= i - 1", I think.
Secondly, what is "void main()"?
There is supposed to be "int main(int argc, char** argv)",
and you need to add some code:

```
int main(int argc, char** argv) {
// Your formal code;
scanf("%*s");
return 0;
}

```c++
Thirdly, what does "mun" mean? Maybe you want to code "num"?