Ошибка чтения значений в массиве структур - PullRequest
0 голосов
/ 21 апреля 2020
struct book{
    char name;
    float price;
    int pages;
};
struct book b[4];
int i;

for(i=0;i<4;i++){
    printf("Enter name, price and pages in the book:\n");
    scanf("%c %f %d", &b[i].name, &b[i].price, &b[i].pages);
}

, когда я запускаю приведенный выше код, он запрашивает все три переменные только в первой итерации, а для следующей итерации и далее я могу ввести только первое значение (т. Е. Char). Я знаю, что здесь что-то не так с переменной float, так как я получаю случайные огромные значения при попытке ее отобразить. Как мне решить и что на самом деле происходит?

Я использую g cc на linux.

Подробное объяснение приветствуется. Спасибо.

...