使用结构体变量建立数据类型后,我们就可以利用这个数据类型创建数组,就比如创建整形数组就可以写为 int arr[ ],那么创建一个自己建立的数据类型的数组就可以写为:
声明的结构体类型名 + 数组名。
例如我们声明一个结构体类型struct my后,就可以在主函数写一个struct my类型的数组。如下:
struct my
{
int a;
char b;
int arr[5];
};
int main()
{
struct my brr[5];
}
例题:
(1)定义一个结构体变量Birthday用来存放一个人的出生日期(年、月、日)。
(2)定义一个结构体变量Student 用来存放学生个人信息,包括姓名(10个字符),学号(长整型)、出生日期、身高、体重)
(3)定义一个结构体数组MyClass用来存放5个学生的信息
编写程序实现要求从键盘输入5个同学的信息,然后输出5个同学的信息。
struct Birthday
{
int year;
int month;
int day;
};
struct Student
{
char name[10];//名字
long int num;//学号
struct Birthday p;//出生日期
int hight;//身高
int weight;//体重
};
int main()
{
struct Student MyClass[5];
for (int i = 0; i < 5; i++)
{
printf("输入第%d个学生的信息:\n ", i + 1);
printf("名字:");
scanf("%s", &MyClass[i].name);
printf("学号:");
scanf("%ld", &MyClass[i].num);
printf("生日日期(年 月 日):");
scanf("%d %d %d", &MyClass[i].p.year, &MyClass[i].p.month, &MyClass[i].p.day);
printf("身高:");
scanf("%d", &MyClass[i].hight);
printf("体重:");
scanf("%d", &MyClass[i].weight);
}
printf("\n");
for (int j = 0; j < 5; j++)
{
printf("输出第%d个学生的信息:\n", j + 1);
printf("名字:");
printf("%s\n", MyClass[j].name);
printf("学号:");
printf("%ld\n", MyClass[j].num);
printf("生日日期(年 月 日):");
printf("%d %d %d\n", MyClass[j].p.year, MyClass[j].p.month, MyClass[j].p.day);
printf("身高:");
printf("%d\n", MyClass[j].hight);
printf("体重:");
printf("%d\n", MyClass[j].weight);
}
return 0;
}