C언어 배열 추가 삭제 탐색 질문 입니다.
조회수 3294회
배열의 크기를 10만으로 잡고 main 창에서 insert함수를 사용하여 수를 삽입하는데 들어가지 않고 오류창입 뜹니다. 제가 정의한 insert함수에 틀린 부분을 잡아주세요
#include <stdio.h>
#include <stdlib.h>
#define MAX_LIST_SIZE 100000
typedef int Element;
Element data[MAX_LIST_SIZE];
int length = 0;
void error(char *str)
{
fprintf(stderr, "%s\n", str);
exit(1);
};
void init_list() {length = 0; }
void clear_list() {length = 0; }
int is_empty() {return length == 0; }
int is_full() {return length == MAX_LIST_SIZE; }
int get_entry(int num) {return data[num]; }
void replace(int num, Element e) {data[num] = e; }
int size() {return length; }
void insert(int pos, int e ){
if(is_full==0 && pos >= 0 && pos<=length){
for(int i = length ; i>pos ; i--){
data[i] = data[i-1];
}
data[pos] = e;
length++;
}
else error("포화상태 & 오류 || 삽입 위치 오류 입니다.");
}
void delete(int pos)
{
if(is_empty()==0 && 0 <= pos && pos < length){
for(int i=pos+1 ; i < length ; i++ ){
data[i-1] = data[i];
length--;
}
}
else error("공백상태 오류 || 삭제 위치 오류");
}
int find (Element e)
{
for(int i = 0 ; i < length ; i++){
if(data[i] == e ){
return i;
}
}
return -1;
}
void print_list(){
for(int i = 0 ; i < length ; i++){
printf("%2d", data[i]);
}
printf("\n");
}
void main()
{
init_list();
insert(0, 10);
print_list();
}
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
void insert(int pos, int e ){ if(is_full==0 && pos >= 0 && pos<=length){ for(int i = length ; i>pos ; i--){ data[i] = data[i-1]; } data[pos] = e; length++; } else error("포화상태 & 오류 || 삽입 위치 오류 입니다."); }
두번째 줄에서 is_full은 함수로 정의하셨는데 ()를 빼먹으셨네요
if(is_full()==0 && pos >= 0 && pos<=length)
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력