Neden bir dizi yapı kullanmalısınız?
5 öğrencinin verilerini saklamamız gereken bir durumu düşünün. Aşağıdaki yapıyı kullanarak saklayabiliriz.
#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); }
Çıktı
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
Yukarıdaki programda 3 öğrencinin verilerini yapı içerisinde sakladık. Ancak 20 öğrenci olması durumunda programın karmaşıklığı artacaktır. Bu durumda 20 farklı yapı değişkenini deklare edip bunları tek tek saklamamız gerekecek. Her öğrenci eklediğimizde bir değişken bildirmek zorunda kalacağımız için bu her zaman zor olacaktır. Tüm değişkenlerin adını hatırlamak da çok zor bir iştir. Ancak c, bir dizi yapıyı bildirmemize olanak tanır ve bunu kullanarak farklı yapı değişkenlerini bildirmekten kaçınabiliriz; bunun yerine farklı varlıkların bilgilerini saklayan tüm yapıları içeren bir koleksiyon yapabiliriz.
C'deki Yapı Dizisi
Bir dizi yapı C her değişkenin farklı varlıklar hakkında bilgi içerdiği birden fazla yapı değişkeninin koleksiyonu olarak tanımlanabilir. dizisi C'deki yapılar farklı veri türlerindeki birden fazla varlık hakkındaki bilgileri depolamak için kullanılır. Yapı dizisi aynı zamanda yapı koleksiyonu olarak da bilinir.
5 öğrencinin bilgilerini saklayan ve yazdıran bir dizi yapı örneğini görelim.
#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++){>