#include <stdio.h>
int main (int argc, const char * argv[])
{
static struct item
{
char code;
float price;
}
table[] =
{
{'a', 3.29},
{'b', 2.99},
{'c', 0.59},
{'d', 1.59},
{'e', 2.39}
};
char item_code[2];
int quantity;
int i;
do {
printf("Enter item code: ");
scanf("%1s", item_code);
if (*item_code != '.') {
for (i=0; i< sizeof(table)/sizeof(struct item)
&& table[i].code != *item_code; i++);
if (i < sizeof(table)/sizeof(struct item)) {
printf("Enter quantity: ");
scanf("%d", &quantity);
printf("\nUnit price = %.2f, total price = %.2f.\n\n\n",
table[i].price, quantity * table[i].price);
}
else
printf("\nItem code %c does not exist. \n\n\n", *item_code);
}
} while (*item_code != '.');
printf("Thank you.\n");
return 0;
}
我是新手。我無法理解上述程序中的第二個「for循環」。爲什麼sizeof被使用?每次循環執行時,「i」的值是什麼? 謝謝。無法理解sizeof
只有一個nitpick:數組_do_知道他們的長度。在許多情況下,數組_decay_指向的數組的指針不知道指向數組的第一個元素的長度。但從技術上講,他們不再是那種情況下的陣列:-) – paxdiablo 2011-12-20 04:50:21
恩,說,謝謝。 :) – sarnold 2011-12-20 06:12:01