在實際問題中,一組數據往往具有不同的數據類型。例如,在學生登記表中,姓名應為字符型;學號可為整型或字符型;年齡應為整型;性別應為字符型;成績可為整型或實型。
顯然不能用一個數組來存放這一組數據。因為數組中各元素的類型和長度都必須一致,以便于編譯系統處理。
【案例描述】
修改以下代碼中的錯誤:
#include <stdio.h>;
struct Books{char name[50];int pages,year;}
main()
{ Books book;
scanf("%s%d%d",book.name,book.pages,book.year);
printf("%s,%d,%d\n",name,pages,year); }
【案例分析】
(1)預處理命令不是C語句,不能以分號結尾。
(2)定義結構體類型的變量時,struct關鍵字不能少。
(3)結構體變量的成員也是變量。scanf函數需要這些變量的地址。
(4)引用結構體變量的成員時,結構體變量的名稱不能缺省。
【參考代碼】
#include <stdio.h>
struct Books{char name[50];int pages,year;}
main()
{ struct Books book;
scanf("%s%d%d",book.name,&book.pages,&book.year);
printf("%s,%d,%d\n",book.name,book.pages,book.year); }