연결리스트 성적프로그램을 만드려고 하는데 질문 드립니다
늘봄
질문 제목 : 연결리스트 성적 프로그램을 만드려고 하는데 질문 드립니다연결리스트로 성적 프로그램 작성하는 방법질문 내용 : #includestdio.h
#includestdlib.h
#define max_list_size 100
typedef int element;
typedef struct
{
element list[max_list_size];
int length;
} arraylisttype;
//오류처리함수
void error(char *massage)
{
fprintf(stderr,%s\n,massage);
exit(1);
}
//리스트초기화
void init(arraylisttype *l)
{
l -length =0;
}
//리스트가 비어있으면 1을반환 아니면 0을반환
int is_empty(arraylisttype *l)
{
return l-length ==0;
}
int is_full(arraylisttype *l)
{
return l-length == max_list_size;
}
void display(arraylisttype *l)
{
int i;
for(i=0;il-length;i++)
printf(%d\n,l-list[i]);
}
void add(arraylisttype *l, int position, element item)
{
if(!is_full(l) && (position=0) && (position = l-length))
{
int i;
for(i=(l-length-1);i=position;i--)
{
l-list[i+1] = l-list[i];
}
l-list[position] = item;
l-length++;
}
}
element delete(arraylisttype *l, int position)
{
int i;
element item;
if(position 0 || position = l-length)
{
error(위치오류);
}
item = l-list[position];
for(i=position;i(l-length-1);i++)
{
l-list[i] = l-list[i+1];
}
l-length--;
return item;
}
main()
{
arraylisttype *plist;
file *fp;
int i=0;
int count=0;
int gijun[100]={0};
fp = fopen(data.txt,rw);
if((fp)==null)
{
printf(x);
return 0;
}
while(!feof(fp))
{
fscanf(fp,%d,&gijun[i]);
i++;
count++;
}
plist = (arraylisttype *)malloc(sizeof(arraylisttype));
init(plist);
for(i=0;icount;i++)
{
add(plist,0,gijun[i]);
}
//add(plist,0,10);
display(plist);
free(plist);
return 0;
}
이 소스를 변경해서 성적을 data.txt에서 입력받아서 처리하는 프로그램을 만드려고 하는데
현재 구조체가 저렇게 되어 있는데 성적을 입력받을때 data.txt안에 있는형식이 생년월일 이름 점수점수 점수
이런식입니다. 그럴경우에현재 구조체에 있는 배열을 다시 수정해서 해야되는것인지 궁금합니다.
그리고 그냥 data파일을 수정해서 하니 %d로 읽어들이고 출력해서 그런지 이름같은게 나오지 않는데 그렇다고
저 코드를 그냥 %c로 바꿀수도 없고 해서 막혀서 막막한 상태입니다...
그런 부분은 어떻게 수정해야지 좋을지 조언좀 해주시면 감사하겠습니다.