在if语句错误中预订[]

时间:2017-03-22 05:39:16

标签: c function if-statement struct

void displayInventory(const struct Book book[], const int size) {

Idk y book []在visual studio plz帮助中出错。

if (book[] < 0) {
    printf("The inventory is empty!");
    printf("===================================================");
}
else {
    printf("Inventory\n");
    printf("===================================================\n");
    printf("ISBN      Title               Year Price  Quantity\n");
    printf("---------+-------------------+----+-------+--------");
    printf("%-10.0d%-20s%-5d$%-8.2f%-8d", book[]._isbn, book[]._title, book[]._year, book[]._price, book[]._qty);
}
}

1 个答案:

答案 0 :(得分:0)

book变量是Struct Book项的数组。如果您想访问这些项目的一个,您需要提供它的索引,例如:

if (book[0].id == 7) ...

在您的情况下(检查库存),您可能想要使用传入的大小(假设使用的项目数量而不是数组的大小 - 这可能是什么它应该是在这种情况下,因为不需要库存列表来了解实际数组本身的大小,只需要知道要显示的项目数量:

if (size <= 0) // inventory is empty.

将这些项目的两者放在一起,你可能会得到以下内容:

void displayInventory (const struct Book book[], const int size) {
    if (size <= 0) {
        puts ("The inventory is empty!");
        puts ("======================================================");
        return;
    }
    puts ("Inventory");
    puts ("=======================================================");
    puts ("ISBN       Title                Year  Price    Quantity");
    puts ("----------+--------------------+-----+--------+--------");
    for (int idx = 0; idx < size; idx++) {
        printf ("%-10.0d %-20s %-5d$ %-8.2f %-8d\n",
            book[idx]._isbn, book[idx]._title, book[idx]._year,
            book[idx]._price, book[idx]._qty);
    }
}