void inputBook (int* book[4][100])
{
int i;
int k;
for (k = 0, i = 0; k == 0; i++)
{
printf("도서번호를 입력하세요 \n");
scanf("%d", &book[0][i]);
printf("도서대금을 입력하세요 \n");
scanf("%d", &book[1][i]);
printf("더 입력하시겠습니까 yes : 0, no : 1 \n");
scanf("%d", &k);
if (k == 1)
{
break;
}
}
}
void inputdel (int* book[4][100])
{
int first, last, mid, target, position;
int smallestPos, k ,walk;
int tmp;
int i;
position = -1;
printf("삭제할 도서의 번호를 입력하세요 \n");
scanf("%d", &target);
for (first=*book[0][0], last=*book[0][99]; first<=last; )
{
*book[0][mid] = (first + last) / 2;
if (mid > last)
{
printf("값이 잘못되었습니다 \n");
}
if (*book[0][mid] == target)
{
position = mid;
book[0][mid] = 0;
//도서정렬
for (k=0; k<=98; k++)
{
smallestPos = k;
for (walk = k + 1; walk <=99; walk++)
{
if(book[0][walk] < book[0][smallestPos])
{
smallestPos = walk;
}
tmp = *book[0][smallestPos];
*book[0][smallestPos] = *book[0][k];
*book[0][k] = tmp;
}
}
printf("더 지우시겠습니까? 1.yes 2.no \n");
scanf("%d", &i);
if (i = 1)
{
return inputdel(book);
}
if (i = 2)
{
break;
}
else
{
printf("입력오류 \n");
continue;
}
}
if (*book[0][mid] < target)
first = *book[0][mid + 1];
else
last = *book[0][mid -1];
}
}
함수가 이렇게 2개고
int main(void)
{
int
*book[4][100];
int start;
int j;
printf("무엇을 하시겠습니까? 1.도서입력 2.도서삭제 3.도서검색 4.도서대여 5.도서반납\n");
scanf("%d", &start);
if (start == 1)
{
inputBook(*&book);
}
if (start == 2)
{
inputdel(*&book);
}
if (start == 3)
{
searchBook(*&book);
}
if (start == 4)
{
borrowBook(*&book);
}
if (start == 5)
{
returnBook(*&book);
}
printf("더 하시겠습니까? 0.yes 1.no \n");
scanf("%d", &j);
if (j == 0)
{
return main();
}
if (j == 1)
{
return 0;
}
}
메인함수는 이렇게 짰는데 바이너리 서치로 넘어가면 그냥 프로그램이 죽어버리네요;;
지적 좀 해주세요 ㅜㅜ 욕해주셔도 되요
for (k = 0, i = 0; k == 0; i++) <--- 머하는거?
내가 치울똥도아닌데 내가 열받네