Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C เพื่อแยกความแตกต่างอาร์เรย์ของโครงสร้างและอาร์เรย์ภายในโครงสร้าง


ในภาษาซี การใช้โครงสร้างโดยทั่วไปคืออาร์เรย์ของโครงสร้าง

ในการประกาศอาร์เรย์ของโครงสร้าง ก่อนอื่นต้องกำหนดโครงสร้าง จากนั้นจึงกำหนดตัวแปรอาร์เรย์ประเภทนั้น

ตัวอย่างเช่น

struct book b[10];//10 elements in an array of structures of type ‘book’

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม 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);
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -

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

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม 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);
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -

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