Защо да използвате масив от структури?
Да разгледаме случай, при който трябва да съхраним данните на 5 ученика. Можем да го съхраняваме, като използваме структурата, както е дадено по-долу.
#include struct student { char name[20]; int id; float marks; }; void main() { struct student s1,s2,s3; int dummy; printf('Enter the name, id, and marks of student 1 '); scanf('%s %d %f',s1.name,&s1.id,&s1.marks); scanf('%c',&dummy); printf('Enter the name, id, and marks of student 2 '); scanf('%s %d %f',s2.name,&s2.id,&s2.marks); scanf('%c',&dummy); printf('Enter the name, id, and marks of student 3 '); scanf('%s %d %f',s3.name,&s3.id,&s3.marks); scanf('%c',&dummy); printf('Printing the details.... '); printf('%s %d %f ',s1.name,s1.id,s1.marks); printf('%s %d %f ',s2.name,s2.id,s2.marks); printf('%s %d %f ',s3.name,s3.id,s3.marks); }
Изход
Enter the name, id, and marks of student 1 James 90 90 Enter the name, id, and marks of student 2 Adoms 90 90 Enter the name, id, and marks of student 3 Nick 90 90 Printing the details.... James 90 90.000000 Adoms 90 90.000000 Nick 90 90.000000
В горната програма сме съхранили данни на 3 студента в структурата. Сложността на програмата обаче ще се увеличи, ако има 20 ученици. В този случай ще трябва да декларираме 20 различни структурни променливи и да ги съхраняваме една по една. Това винаги ще бъде трудно, тъй като ще трябва да декларираме променлива всеки път, когато добавяме ученик. Запомнянето на имената на всички променливи също е много трудна задача. Въпреки това c ни позволява да декларираме масив от структури, използвайки които, можем да избегнем декларирането на различните структурни променливи; вместо това можем да направим колекция, съдържаща всички структури, които съхраняват информацията на различни обекти.
Масив от структури в C
Масив от структури в ° С може да се дефинира като колекция от променливи на множество структури, където всяка променлива съдържа информация за различни обекти. Масивът от структури в C се използват за съхраняване на информация за множество обекти от различни типове данни. Масивът от структури е известен също като колекция от структури.
Нека видим пример за масив от структури, който съхранява информация за 5 ученика и я отпечатва.
#include #include struct student{ int rollno; char name[10]; }; int main(){ int i; struct student st[5]; printf('Enter Records of 5 students'); for(i=0;i<5;i++){ printf(' enter rollno:'); scanf('%d',&st[i].rollno); name:'); scanf('%s',&st[i].name); } printf(' student information list:'); for(i="0;i<5;i++){" printf(' rollno:%d, name:%s',st[i].rollno,st[i].name); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Enter Records of 5 students Enter Rollno:1 Enter Name:Sonoo Enter Rollno:2 Enter Name:Ratan Enter Rollno:3 Enter Name:Vimal Enter Rollno:4 Enter Name:James Enter Rollno:5 Enter Name:Sarfraz Student Information List: Rollno:1, Name:Sonoo Rollno:2, Name:Ratan Rollno:3, Name:Vimal Rollno:4, Name:James Rollno:5, Name:Sarfraz </pre> <hr></5;i++){>
5;i++){>