Trong ngôn ngữ lập trình C, cấu trúc được sử dụng phổ biến nhất là một mảng cấu trúc.
Để khai báo một mảng cấu trúc, trước tiên cấu trúc phải được xác định và sau đó, một biến mảng của kiểu đó phải được xác định.
Ví dụ:
struct book b[10];//10 elements in an array of structures of type ‘book’
Ví dụ
Sau đây là chương trình C cho mảng cấu trúc -
Dấu cấu trúcstruct 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 = total.sub1 + student[i].sub1; total.sub2 = total.sub2 + student[i].sub2; total.sub3 = total.sub3 + student[i].sub3; total.total = total.total + student[i].total; } printf(" STUDENT TOTAL\n\n"); for(i = 0; i <= 2; i++) printf("Student[%d] %d\n", i+1,student[i].total); printf("\n SUBJECT TOTAL\n\n"); printf("%s %d\n%s %d\n%s %d\n", "Subject 1 ", total.sub1, "Subject 2 ", total.sub2, "Subject 3 ", total.sub3); printf("\nGrand Total = %d\n", total.total); }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
STUDENT TOTAL Student[1] 48 Student[2] 367 Student[3] 110 SUBJECT TOTAL Subject 1 4200462 Subject 2 96 Subject 3 223 Grand Total = 525
Ví dụ
Sau đây là chương trình C cho một 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("STUDENT TOTAL\n\n"); for(i = 0; i <= 2; i++) printf("Student[%d] %d\n", i+1, student[i].total); printf("\nSUBJECT TOTAL\n\n"); for(j = 0; j <= 2; j++) printf("Subject-%d %d\n", j+1, total.sub[j]); printf("\nGrand Total = %d\n", total.total); }
Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
STUDENT TOTAL Student[1] 216 Student[2] 254 Student[3] 85 SUBJECT TOTAL Subject-1 4200548 Subject-2 130 Subject-3 71 Grand Total = 555