请问为什么结果会出错啊

img

img

img


结果输出是和左边的不一样啊,应该怎么改?
为什么他数组会有一个数据丢失呀?


#include <stdio.h>
int flag = 0;
int main() 
{
    int n = 10;
    int a[n] = {0};
    int c;
    int i,j,k;
    printf("请输入一个整数n(0<n<=1000): ");
    scanf("%d",&n);
    printf("请输入%d个数: \n",n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("请输入需要删除的数字:");
    scanf("%d",&c);
    for(i=0;i<n;i++)
    {
        if(c == a[i])
        {
            flag = 1;
            for(j=i;j<n-1;j++)
            {
                a[j] = a[j+1];
            }
            n=n-1;
            i--;
            printf("删除之后显示:");
            for(k=0;k<n;k++)
            {
                printf("%d ",a[k]);
            }
            printf("\n");        
        }
    }
    if(flag == 0)
    {
            printf("没有要删除的数据:");
            for(k=0;k<n;k++)
            {
                printf("%d ",a[k]);
            }
    }
    return 0; 
}