Witam chcę stworzyć bazę danych w której mam 2 struktury Książki oraz uczniowie.
Stworzyłem przy ich pomocy 2 listy jednokierunkowe. Teraz chciałbym utworzyć funkcję która przypisywałaby danemu uczniowi książki oraz zliczała ich ilośc. Tylko teraz pojawia się problem jak to zrobić. Chciałem użyć tablicy wskaźników (** ptr) która zawierałaby adresy do danych książek, jednak nie bardzo wiem jak to zrobić.
typedef struct Student{ ///Struktura przechowujaca dane studentów
int id;
char name[10];
char surname[15];
char email[20];
char phone_num[9];
struct STUDENT *next;
struct BOOK *assigned;
}STUDENT;
typedef struct Book{ /// Struktura przechowujaca dane ksiazek
int id;
char author[15];
char title[20];
char year[4];
struct BOOK *next;
}BOOK;
void assign_book(STUDENT *root_student, BOOK *root_book){
STUDENT *crt_stud = root_student;
BOOK *crt_book = root_book;
int stud_id = 4;
int book_id = 3;
while(crt_stud != NULL){ /// Pętla operująca na uczniach
if(crt_stud->id == stud_id){
while(crt_book !=NULL){ /// Pętla operująca na książkach
if(crt_book->id == book_id){
crt_stud->assigned = crt_book; ///Przypisanie wybranej ksiazki do zmiennej wskaznikowej
printf("%s",crt_stud->assigned->title); /// Sprawdzenie czy funkcja wypisze tytuł przypisanej książki <--- Po wstawieniu tej linijki program się nie kompiluje
break;
}
else{
crt_book = crt_book->next;
}
}
break;
}
else{
crt_stud = crt_stud->next;
}
}
To jest kod który do tej pory udało mi się napisać.
Nie wiem tylko dlaczego gdy próbuję wypisać na ekran przypisaną książkę, program się nie kompiluje.
Jeżeli ktoś byłby w stanie wyjaśnić mi jak zrobić aby można było by przypisać kilka książek oraz wyjaśnić co robię źle byłbym wdzięczny.