Kodėl verta naudoti daugybę struktūrų?
Apsvarstykite atvejį, kai reikia saugoti 5 studentų duomenis. Mes galime jį saugoti naudodami toliau pateiktą struktūrą.
#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); }
Išvestis
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
Aukščiau pateiktoje programoje struktūroje išsaugojome 3 studentų duomenis. Tačiau programos sudėtingumas padidės, jei bus 20 studentų. Tokiu atveju turėsime deklaruoti 20 skirtingų struktūros kintamųjų ir saugoti juos po vieną. Tai visada bus sunku, nes kiekvieną kartą pridėdami mokinį turėsime deklaruoti kintamąjį. Prisiminti visų kintamųjų pavadinimus taip pat yra labai sudėtinga užduotis. Tačiau c leidžia mums deklaruoti struktūrų masyvą, kurį naudodami galime išvengti skirtingų struktūros kintamųjų deklaravimo; Vietoj to galime sudaryti rinkinį, kuriame yra visos struktūros, kuriose saugoma skirtingų objektų informacija.
Struktūrų masyvas C
Daugybė struktūrų C gali būti apibrėžtas kaip kelių struktūrų kintamųjų rinkinys, kur kiekvienas kintamasis turi informaciją apie skirtingus objektus. Masyvas struktūros C naudojami informacijai apie kelis skirtingų duomenų tipų objektus saugoti. Struktūrų masyvas taip pat žinomas kaip struktūrų rinkinys.
Pažiūrėkime struktūrų masyvo pavyzdį, kuriame saugoma 5 mokinių informacija ir ją išspausdinama.
#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++){>