在实际问题中,一组数据往往具有不同的数据类型。例如,在学生登记表中,姓名应为字符型;学号可为整型或字符型;年龄应为整型;性别应为字符型;成绩可为整型或实型。
显然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。
【案例描述】
修改以下代码中的错误:
#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语句,不能以分号结尾。
(3)结构体变量的成员也是变量。scanf函数需要这些变量的地址。
【参考代码】
#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); }