Miért használjunk struktúrák tömbjét?
Tekintsünk egy esetet, amikor 5 tanuló adatait kell tárolnunk. Tárolhatjuk az alábbi struktúra használatával.
#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); }
Kimenet
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
A fenti programban 3 tanuló adatait tároltuk a struktúrában. A program összetettségét azonban növeli, ha 20 hallgató van. Ebben az esetben 20 különböző szerkezeti változót kell deklarálnunk és egyenként tárolnunk. Ez mindig nehéz lesz, mivel minden alkalommal deklarálnunk kell egy változót, amikor tanulót adunk hozzá. Az összes változó nevének megjegyezése szintén nagyon bonyolult feladat. A c azonban lehetővé teszi, hogy deklaráljunk egy struktúratömböt, amellyel elkerülhetjük a különböző struktúraváltozók deklarálását; ehelyett készíthetünk egy gyűjteményt, amely tartalmazza a különböző entitások információit tároló összes struktúrát.
Struktúrák tömbje C-ben
Struktúrák tömbje C több struktúraváltozó gyűjteményeként definiálható, ahol minden változó különböző entitásokról tartalmaz információkat. A tömb szerkezetek C-ben több, különböző adattípusú entitás információinak tárolására szolgálnak. A struktúrák tömbjét struktúrák gyűjteményének is nevezik.
Lássunk egy példát egy olyan struktúratömbre, amely 5 tanuló információit tárolja és kinyomtatja.
#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++){>