Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C phân biệt mảng cấu trúc và mảng trong cấu trúc


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