Miksi käyttää erilaisia rakenteita?
Harkitse tapausta, jossa meidän on tallennettava 5 opiskelijan tiedot. Voimme tallentaa sen käyttämällä alla olevaa rakennetta.
roomalaiset numerot 1-100
#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); }
Lähtö
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
Yllä olevassa ohjelmassa olemme tallentaneet rakenteeseen 3 opiskelijan tiedot. Ohjelman monimutkaisuus kuitenkin lisääntyy, jos opiskelijaa on 20. Siinä tapauksessa meidän on ilmoitettava 20 erilaista rakennemuuttujaa ja tallennettava ne yksitellen. Tämä on aina vaikeaa, koska joudumme ilmoittamaan muuttujan joka kerta, kun lisäämme opiskelijan. Kaikkien muuttujien nimien muistaminen on myös erittäin hankala tehtävä. Kuitenkin c:n avulla voimme ilmoittaa joukon rakenteita, joita käyttämällä voimme välttää eri rakennemuuttujien ilmoittamisen; sen sijaan voimme tehdä kokoelman, joka sisältää kaikki rakenteet, jotka tallentavat eri entiteettien tietoja.
Joukko C:n rakenteita
Mukana joukko rakenteita C voidaan määritellä useiden rakennemuuttujien kokoelmaksi, jossa jokainen muuttuja sisältää tietoa eri entiteeteista. Joukko rakenteet C:ssä käytetään tallentamaan tietoja useista eri tietotyypeistä olevista entiteeteistä. Rakenteiden joukko tunnetaan myös rakennekokoelmana.
Katsotaanpa esimerkkiä joukosta rakenteita, jotka tallentavat viiden opiskelijan tiedot ja tulostavat ne.
#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++){>