헤더

#pragma once
#define FALSE 0
#define TRUE 1
#define LIST_LEN 100
/*데이터 구조체 정의*/
typedef int Ldata;
typedef struct alist
{
    Ldata arr[LIST_LEN];
    int numOfData;
    int curPosition;
}AList;
/*함수 선언*/
typedef AList List;
void ListInit(List* plist);    /*데이터 선언*/
void LInsert(List* plist);    /*데이터 저장*/
int LRemove(List* plist);    /*데이터 삭제 내부함수*/
int LFirst(List* plist, Ldata*pdata);    /*데이터 확인 내부함수*/
int LNext(List* plist, Ldata*pdata);    /*데이터 확인 내부함수2*/
int LCount(List* plist, Ldata* pdata);    /*데이터 개수 확인*/

소스

#include <stdio.h>
#include "헤더.h"
void ListInit(List* plist)    /*데이터 선언*/
{
    plist->numOfData = 0;
    plist->curPosition = -1;
}
void LInsert(List* plist)    /*데이터 저장*/
{
    if (plist->numOfData >= LIST_LEN) {
        printf("용량이 가득 찼습니다.");
        return;
    }
    int number;
    printf("저장할 숫자를 입력하세요.");
    scanf_s("%d", &number);
    rewind(stdin);
    plist->arr[plist->numOfData] = number;
    printf("저장된 숫자.%d", plist->arr[plist->numOfData]);
    printf("입력이 완료되었습니다.");
    (plist->numOfData)++;
}
int LCount(List* plist,Ldata*pdata)    /*데이터 개수 세기*/
{
    int count;
    count = plist->numOfData;
    return count;
}
int LRemove(List* plist)    /*데이터 삭제*/
{
    int i;
    int rpos = plist->curPosition;
    int num = plist->numOfData;
    Ldata rdata = plist->arr[rpos];
    for (i = rpos; i < num - 1; i++)
        plist->arr[i] = plist->arr[i + 1];
    (plist->curPosition)--;
    (plist->numOfData)--;
    return rdata;
}
int LFirst(List* plist, Ldata* pdata)    /*데이터 확인 내부함수*/
{
    if (plist->numOfData == 0) {
        printf("저장된 숫자가 없습니다.");
        return FALSE;
    }
    (plist->curPosition) = 0;
    *pdata = plist->arr[0];
    return TRUE;
}
int LNext(List* plist, Ldata* pdata)    /*데이터 확인 내부함수2*/
{
    if (plist->curPosition >= (plist->numOfData) - 1)
        return FALSE;
    (plist->curPosition)++;
    *pdata = plist->arr[plist->curPosition];
    return TRUE;
}

메인

#include <stdio.h>
#include "헤더.h"
void main()
{
    /*저장할 배열리스트 초기화*/
    printf("초기 데이터 생성중입니다.\n");
    AList list;
    int data = 0;
    int B = 0;
    ListInit(&list);
    printf("생성되었습니다.\n");
    /*메뉴*/
    while (B != 4)
    {
        printf("\n1.데이터 추가\n");
        printf("2.데이터 확인\n");
        printf("3.데이터 삭제\n");
        printf("4.종료\n");
        int menu = 0;
        scanf_s("%d", &menu);
        rewind(stdin);
        if (menu == 1)
        {
            LInsert(&list);    /*데이터 입력*/
            printf("저장된 총 숫자는 %d개 입니다", LCount(&list, &data));
        }
        else if (menu == 2)                         /*데이터 확인*/
        {
            if (LFirst(&list, &data))
                printf("%d", data);
            while (LNext(&list, &data))
                printf(" %d", data);
        }
        else if (menu == 3)
        {
            int DNumber;
            printf("\n삭제할 숫자를 입력해주세요");
            scanf_s("%d", &DNumber);
            rewind(stdin);
            if (LFirst(&list, &data))
            {
                if (data == DNumber)LRemove(&list);
                while (LNext(&list, &data))
                {
                    if (data == DNumber)LRemove(&list);
                }
            }
        }
        else if (menu == 4)return; /*프로그램 종료*/
        else if (menu > 4)printf("1~4까지의 숫자로 입력바랍니다.");
    }
}

아직 학원같은데 안가고 책,인강만 보고 하는중인데 왜 이걸 이렇게 하지? 싶은게 있다면 피드백 부탁드려요