#include <stdio.h>
#include <string.h>
typedef struct {
char *name, *writer, *publish, *cc;
int c=1;
} B;
void add(int num, B*);
int pri(int num, B*);
void show(int num, B*);
int main ()
{
B book[10];
int i ,h;
static int num =5;
book[0].name="정";
book[0].writer="지";
book[0].publish="종";
book[1].name="최";
book[1].writer="틀";
book[1].publish="가;
book[2].name="이";
book[2].writer="ㅂ";
book[2].publish="ㄸ";
book[3].name="민";
book[3].writer="재";
book[3].publish="잼";
book[4].name="욱";
book[4].writer="군";
book[4].publish="해";
for(i=5;i<10;i++)
{
book[i].name=NULL;
book[i].writer=NULL;
book[i].publish=NULL;
}
for(i=0;i<5;i++)
{
if(book[i].c==1)
{
book[i].cc="대출 가능!";
book[i].c=1;
}
else
book[i].cc="대출 가능!";
book[i].c=0;
printf("책이름 : %-20s 저자: %-20s 출판사 : %-20s 대출 : %-20s \n", book[i].name, book[i].writer, book[i].publish, book[i].cc);
}
while (h!=5)
{
printf("------------------------------------------------------------------------------------\n");
printf("1. 도서 추가 2. 도서 검색 및 대출 3. 리스트 4.확인 5. 종료 ");
scanf("%d", &h);
switch (h)
{
case 1 : {
num++;
add(num, book);
break;
}
case 2 :
case 3 : show(num, book);
case 4 : pri(num, book);
}
}
}
void add(int num, B* book)
{
printf("책의 이름은?\n");
scanf("%s", &(book+num-1)->name);
printf("책의 저자는?\n");
scanf("%s", &(book+num-1)->writer);
printf("책의 출판사는?\n");
scanf("%s", &(book+num-1)->publish);
printf("대출이 가능한가??\n");
scanf("%s", &(book+num-1)->cc);
}
int pri(int num,B* book)
{
printf("%s", (book+num-1)->name);
printf("%s", (book+num-1)->writer);
printf("%s", (book+num-1)->publish);
printf("%s", (book+num-1)->name);
}
void show(int num, B* book)
{ int i;
for(i=0;i<num;i++)
{
printf("책이름 : %-20s 저자: %-20s 출판사 : %-20s 대출 : %-20s \n", book[i].name, book[i].writer, book[i].publish, book[i].cc);
}
}
지금 add함수로 책을 추가하는거 까지는 괜찮은데
책을 추가한 뒤에 리스트나 마지막책을 출력하면 실행이 중지됩니다 ㅠㅠ
아마 추가과정에서 잘못된거 같은데... 도와주시면 감사하겠습니다 ㅠㅠ