struct Book {
char author[50];
char title[100];
char publisher[50];
int year;
int pages;
};
// характеристики книг
void setBook(struct Book *book, char author[], char title[], char publisher[], int year, int pages) {
strcpy(book
->publisher
, publisher
); book->year = year;
book->pages = pages;
}
// Получить авторов
char* getAuthor(struct Book *book) {
return book->author;
}
// Получить название
char* getTitle(struct Book *book) {
return book->title;
}
// Получить издателя
char* getPublisher(struct Book *book) {
return book->publisher;
}
// год
int getYear(struct Book *book) {
return book->year;
}
// кол-во стр
int getPages(struct Book *book) {
return book->pages;
}
// вывод инфы
void showBook(struct Book *book) {
printf("Author: %s\n", book
->author
); printf("Title: %s\n", book
->title
); printf("Publisher: %s\n", book
->publisher
); printf("Year: %d\n", book
->year
); printf("Pages: %d\n", book
->pages
); }
int main() {
struct Book books[3]; // массива книг
// Описание книг
setBook(&books[0], "Pushkin", "book", "news", 2000, 300);
setBook(&books[1], "Gogol", "Revesora", "TwoBooks", 2010, 400);
setBook(&books[2], "Gogol", "Dead souls", "Own", 2015, 500);
// Вывод списка книг заданного автора
printf("Books by Author1:\n"); for(int i = 0; i < 3; i++) {
if(strcmp(getAuthor
(&books
[i
]), "Author1") == 0) { showBook(&books[i]);
}
}
// Вывод списка книг выпущенных заданным издателем
printf("Books published by Publisher1:\n"); for(int i = 0; i < 3; i++) {
if(strcmp(getPublisher
(&books
[i
]), "Publisher1") == 0) { showBook(&books[i]);
}
}
// Вывод списка книг выпущенных после заданного года
int year = 2010;
printf("Books published after %d:\n", year
); for(int i = 0; i < 3; i++) {
if(getYear(&books[i]) > year) {
showBook(&books[i]);
}
}
return 0;
}
c3RydWN0IEJvb2sgewpjaGFyIGF1dGhvcls1MF07CmNoYXIgdGl0bGVbMTAwXTsKY2hhciBwdWJsaXNoZXJbNTBdOwppbnQgeWVhcjsKaW50IHBhZ2VzOwp9OwoKLy8g0YXQsNGA0LDQutGC0LXRgNC40YHRgtC40LrQuCDQutC90LjQswp2b2lkIHNldEJvb2soc3RydWN0IEJvb2sgKmJvb2ssIGNoYXIgYXV0aG9yW10sIGNoYXIgdGl0bGVbXSwgY2hhciBwdWJsaXNoZXJbXSwgaW50IHllYXIsIGludCBwYWdlcykgewpzdHJjcHkoYm9vay0+YXV0aG9yLCBhdXRob3IpOwpzdHJjcHkoYm9vay0+dGl0bGUsIHRpdGxlKTsKc3RyY3B5KGJvb2stPnB1Ymxpc2hlciwgcHVibGlzaGVyKTsKYm9vay0+eWVhciA9IHllYXI7CmJvb2stPnBhZ2VzID0gcGFnZXM7Cn0KCi8vINCf0L7Qu9GD0YfQuNGC0Ywg0LDQstGC0L7RgNC+0LIKY2hhciogZ2V0QXV0aG9yKHN0cnVjdCBCb29rICpib29rKSB7CnJldHVybiBib29rLT5hdXRob3I7Cn0KCi8vINCf0L7Qu9GD0YfQuNGC0Ywg0L3QsNC30LLQsNC90LjQtQpjaGFyKiBnZXRUaXRsZShzdHJ1Y3QgQm9vayAqYm9vaykgewpyZXR1cm4gYm9vay0+dGl0bGU7Cn0KCi8vINCf0L7Qu9GD0YfQuNGC0Ywg0LjQt9C00LDRgtC10LvRjwpjaGFyKiBnZXRQdWJsaXNoZXIoc3RydWN0IEJvb2sgKmJvb2spIHsKcmV0dXJuIGJvb2stPnB1Ymxpc2hlcjsKfQoKLy8g0LPQvtC0CmludCBnZXRZZWFyKHN0cnVjdCBCb29rICpib29rKSB7CnJldHVybiBib29rLT55ZWFyOwp9CgovLyDQutC+0Lst0LLQviDRgdGC0YAKaW50IGdldFBhZ2VzKHN0cnVjdCBCb29rICpib29rKSB7CnJldHVybiBib29rLT5wYWdlczsKfQoKLy8g0LLRi9Cy0L7QtCDQuNC90YTRiwp2b2lkIHNob3dCb29rKHN0cnVjdCBCb29rICpib29rKSB7CnByaW50ZigiQXV0aG9yOiAlc1xuIiwgYm9vay0+YXV0aG9yKTsKcHJpbnRmKCJUaXRsZTogJXNcbiIsIGJvb2stPnRpdGxlKTsKcHJpbnRmKCJQdWJsaXNoZXI6ICVzXG4iLCBib29rLT5wdWJsaXNoZXIpOwpwcmludGYoIlllYXI6ICVkXG4iLCBib29rLT55ZWFyKTsKcHJpbnRmKCJQYWdlczogJWRcbiIsIGJvb2stPnBhZ2VzKTsKfQoKaW50IG1haW4oKSB7CnN0cnVjdCBCb29rIGJvb2tzWzNdOyAvLyDQvNCw0YHRgdC40LLQsCDQutC90LjQswovLyDQntC/0LjRgdCw0L3QuNC1INC60L3QuNCzCnNldEJvb2soJmJvb2tzWzBdLCAiUHVzaGtpbiIsICJib29rIiwgIm5ld3MiLCAyMDAwLCAzMDApOwpzZXRCb29rKCZib29rc1sxXSwgIkdvZ29sIiwgIlJldmVzb3JhIiwgIlR3b0Jvb2tzIiwgMjAxMCwgNDAwKTsKc2V0Qm9vaygmYm9va3NbMl0sICJHb2dvbCIsICJEZWFkIHNvdWxzIiwgIk93biIsIDIwMTUsIDUwMCk7CgovLyDQktGL0LLQvtC0INGB0L/QuNGB0LrQsCDQutC90LjQsyDQt9Cw0LTQsNC90L3QvtCz0L4g0LDQstGC0L7RgNCwCnByaW50ZigiQm9va3MgYnkgQXV0aG9yMTpcbiIpOwpmb3IoaW50IGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAgICBpZihzdHJjbXAoZ2V0QXV0aG9yKCZib29rc1tpXSksICJBdXRob3IxIikgPT0gMCkgewogICAgICAgIHNob3dCb29rKCZib29rc1tpXSk7CiAgICB9Cn0KCi8vINCS0YvQstC+0LQg0YHQv9C40YHQutCwINC60L3QuNCzINCy0YvQv9GD0YnQtdC90L3Ri9GFINC30LDQtNCw0L3QvdGL0Lwg0LjQt9C00LDRgtC10LvQtdC8CnByaW50ZigiQm9va3MgcHVibGlzaGVkIGJ5IFB1Ymxpc2hlcjE6XG4iKTsKZm9yKGludCBpID0gMDsgaSA8IDM7IGkrKykgewogICAgaWYoc3RyY21wKGdldFB1Ymxpc2hlcigmYm9va3NbaV0pLCAiUHVibGlzaGVyMSIpID09IDApIHsKICAgICAgICBzaG93Qm9vaygmYm9va3NbaV0pOwogICAgfQp9CgovLyDQktGL0LLQvtC0INGB0L/QuNGB0LrQsCDQutC90LjQsyDQstGL0L/Rg9GJ0LXQvdC90YvRhSDQv9C+0YHQu9C1INC30LDQtNCw0L3QvdC+0LPQviDQs9C+0LTQsAppbnQgeWVhciA9IDIwMTA7CnByaW50ZigiQm9va3MgcHVibGlzaGVkIGFmdGVyICVkOlxuIiwgeWVhcik7CmZvcihpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKICAgIGlmKGdldFllYXIoJmJvb2tzW2ldKSA+IHllYXIpIHsKICAgICAgICBzaG93Qm9vaygmYm9va3NbaV0pOwogICAgfQp9CgpyZXR1cm4gMDsKfQo=