Trong C, việc sử dụng phổ biến nhất của cấu trúc là mảng các cấu trúc.
Để khai báo mảng cấu trúc, trước tiên cấu trúc phải được định nghĩa, sau đó biến mảng kiểu đó được định nghĩa.
Ví dụ:
struct book b[10]; // 10 phan tu mang cau truc kieu 'book'
Ví dụ 1: Mảng cấu trúc
Chương trình C mảng cấu trúc:
struct marks{
int sub1;
int sub2;
int sub3;
int total;
};
main(){
int i;
struct marks student[3] = {{20,17,11,10},
{175,23,169,10},
{27,56,27,01}};
struct marks total;
for(i = 0; i <= 2; i++){
student[i].total = student[i].sub1 + student[i].sub2 + student[i].sub3;
total.sub1 += student[i].sub1;
total.sub2 += student[i].sub2;
total.sub3 += student[i].sub3;
total.total += student[i].total;
}
printf(" TONG SINH VIEN\n\n");
for(i = 0; i <= 2; i++)
printf("SinhVien[%d] %d\n", i+1, student[i].total);
printf("\n TONG MON HOC\n\n");
printf("%s %d\n%s %d\n%s %d\n", "Mon 1 ", total.sub1, "Mon 2 ", total.sub2, "Mon 3 ", total.sub3);
printf("\nTong cong = %d\n", total.total);
}
Đầu ra
Kết quả chạy chương trình:
TONG SINH VIEN SinhVien[1] 48 SinhVien[2] 367 SinhVien[3] 110 TONG MON HOC Mon 1 4200462 Mon 2 96 Mon 3 223 Tong cong = 525
Ví dụ 2: Mảng trong cấu trúc
Chương trình C mảng trong cấu trúc:
main(){
struct marks{
int sub[3];
int total;
};
struct marks student[3] =
{145,50,11,10,175,50,19,10,20,30,25,10};
struct marks total;
int i, j;
for(i = 0; i <= 2; i++){
for(j = 0; j <= 2; j++){
student[i].total += student[i].sub[j];
total.sub[j] += student[i].sub[j];
}
total.total += student[i].total;
}
printf("TONG SINH VIEN\n\n");
for(i = 0; i <= 2; i++)
printf("SinhVien[%d] %d\n", i+1, student[i].total);
printf("\nTONG MON HOC\n\n");
for(j = 0; j <= 2; j++)
printf("Mon-%d %d\n", j+1, total.sub[j]);
printf("\nTong cong = %d\n", total.total);
}
Đầu ra
Kết quả chạy chương trình:
TONG SINH VIEN SinhVien[1] 216 SinhVien[2] 254 SinhVien[3] 85 TONG MON HOC Mon-1 4200548 Mon-2 130 Mon-3 71 Tong cong = 555