目录
一、结构体数组的定义
二、结构体数组的初始化
一、结构体数组的定义
一个结构体变量只能表示学生成绩管理表中的一个学生的记录信息,代表其中的一个实例,而实际数据库中有多个学生的记录,每个记录对应一个学生的信息,如何表示这么多具有相同结构体的学生记录呢?显然,相对于定义多个结构体变量而言,定义一个结构体数组是最简单的方法。
二、结构体数组的初始化
也可以在定义结构体数组的同时对其进行初始化。
例题:利用结构体数组计算每个学生的4门课程的平均分。
程序如下,之前的程序差不多,增加了一个计算平均分的功能,主要突出显示数组在结构体的示例。
#include <stdio.h>
typedef struct date
{int year;int month;int day;
}DATE;typedef struct student
{long studentID;char studentName[10];char studentSex;DATE birthday;int score[4];
}STUDENT;int main(void)
{int i,j;float sum[30];STUDENT stu[30] = {{100310121,"王刚",'M',{1991,5,19},{72,83,90,82}},{100310122,"李小明",'M',{1992,8,20},{88,92,78,78}},{100310123,"王洪礼",'F',{1991,9,19},{98,72,89,66}},{100310124,"程莉莉",'F',{1992,3,22},{87,95,78,90}}};for(i=0;i<4;i++){sum[i]=0;for(j=0;j<4;j++){sum[i]+=stu[i].score[j];}printf("%10ld%8s%3c%6d/ %02d/ %02d%4d%4d%4d%4d%6.1lf\n",stu[i].studentID,stu[i].studentName,stu[i].studentSex,stu[i].birthday.year,stu[i].birthday.month,stu[i].birthday.day,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],sum[i]/4.0);}return 0;
}