Тема: Допоможіть, будь ласка, виправити задачу зі структурами
Сподіваюся, я ще не дістав тут всіх за два дні 
 
Завдання: 
Написати програму для створення, доповнення та перегляду бази даних, що містить відомості про книги ( структура запису може мати такі поля: номер запису, назва книги, прізвище автора, рік видання, кількість сторінок).
Код:
#include <cstdlib>
#include <iostream>
using namespace std;
struct TBook
{
     int id;
     string title[50];
     string author[50];
     int year;
     int pages;
} book[9];
void create_TBook (TBook &k)
{
     printf("Input id: "); scanf("%d", k.id);
     printf("Input title: "); scanf("%s", k.title);
     printf("Input author: "); scanf("%s", k.author);
     printf("Input year: "); scanf("%d", k.year);
     printf("Input pages: "); scanf("%d", k.pages);     
}
void view_TBook (TBook const &k)
{
     printf("id: %d", k.id); 
     printf("title: %s", k.title); 
     printf("author: %s", k.author);
     printf("year: %d", k.year); 
     printf("pages: %d", k.pages);
}
void change_TBook (TBook &k)
{
     printf("Change id: "); scanf("%d", k.id);
     printf("Change title: "); scanf("%s", k.title);
     printf("Change author: "); scanf("%s", k.author);
     printf("Change year: "); scanf("%d", k.year);
     printf("Change pages: "); scanf("%d", k.pages); 
}
int main(int argc, char *argv[])
{   
    TBook book[9];
    create_TBook(book[0]);
    view_TBook(book[0]);
    change_TBook(book[0]);
    system("PAUSE");
    return EXIT_SUCCESS;
}Помилка після ведення перших даних: