下面的程序运行时出不来结果

想要实现把一个数组中的零全部移到数组最后,然后其他数字的次序不变,用指针实现
请友友们帮忙看看程序有什么问题

img

img

img

你这写的太麻烦了吧。
思路:
遍历数组,凡是不是0的元素,移动到数组开头的位置,最后将数组后面的全部改为0,即可

#include <stdio.h>
int main()
{
    int a[10001] = {0},n,i,j=0,k;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n;i++)
    {
         if(a[i] != 0)
            a[j++] = a[i];
    }
    for(k=j;k<n;k++)
        a[k] = 0;
    for(i=0;i<n;i++)
        printf("%d ",a[i]);
}