线性表的输入与输出,应用问题是输入一串数据,删除特定数字,最后输出删除后的数据

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图

for (int j = 0; j < list1.length; j++) {
scanf("%d", &list1.elem[j]);
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

输入数字,删除特定数字再输出

C语言实现线性表的插入和删除操作:

#include <stdio.h>
typedef struct _Sqlist {
    int elem[1000] ;
    int length ; //长度;
} Sqlist;

void initData(Sqlist *s)
{
    int i=0;
    scanf("%d",&s->length);
    for(i=0;i<s->length;i++)
        scanf("%d",&s->elem[i]);
}
 
void removeData(Sqlist *s,int n)
{
    int i=0,j=0;
    for(i=0;i<s->length;i++)
    {
        if(s->elem[i] == n)
        {
            for(j=i;j<s->length-1;j++)
                s->elem[j] = s->elem[j+1];
            s->length--;
            break;
        }
    }
}

void print(Sqlist s)
{
    int i=0;
    for(i=0;i<s.length;i++)
        printf("%d ",s.elem[i]);
}

int main()
{
    Sqlist s;
    int n;
    initData(&s);
    printf("删除值:");
    scanf("%d",&n);
    removeData(&s,n);
    print(s);
    return 0;
}