Computer >> 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 một cấu trúc

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ú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 = 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