English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
على سبيل المثال، هناك حالة حيث نحتاج إلى حفظ بيانات 5 طلاب. يمكننا استخدام الهيكل المقدم أدناه لحفظ ذلك.
#include <stdio.h> struct student { char name[20]; int id; float marks; }; void main() { struct student s1,s2,s3; int dummy; printf("输入学生1的姓名,身份证和分数 "); scanf("%s %d %f",s1.name,&s1.id,&s1.marks); scanf("%c",&dummy); printf("输入学生2的姓名,身份证和分数 "); scanf("%s %d %f",s2.name,&s2.id,&s2.marks); scanf("%c",&dummy); printf("输入学生3的姓名,身份证和分数 "); scanf("%s %d %f",s3.name,&s3.id,&s3.marks); scanf("%c",&dummy); printf("输出详细信息....\n"); printf("%s %d %f\n",s1.name,s1.id,s1.marks); printf("%s %d %f\n",s2.name,s2.id,s2.marks); printf("%s %d %f\n",s3.name,s3.id,s3.marks); }
النتيجة الإخراج
ادخل اسم الطالب 1، هوية الطالب ودرجاته James 90 90 ادخل اسم الطالب 2، هوية الطالب ودرجاته Adoms 90 90 ادخل اسم الطالب 3، هوية الطالب ودرجاته Nick 90 90 الإخراج التفصيلي.... James 90 90.000000 Adoms 90 90.000000 Nick 90 90.000000
في البرنامج المذكور أعلاه، نحن نستخدم الهيكل لتخزين بيانات 3 طلاب. ولكن إذا كان هناك 20 طالبًا، فإن تعقيد البرنامج سيزداد. في هذه الحالة، سنحتاج إلى إعلان 20 متغيرًا مختلفًا، وسيتم تخزينها واحدة تلو الأخرى. سيكون هذا أمرًا صعبًا، لأنه يجب إعلان متغير جديد في كل مرة يتم إضافة طالب جديد. تذكر أسماء جميع المتغيرات أيضًا مهمة صعبة. ولكن يمكننا في لغة C استخدام إعلان مصفوفة الهياكل، مما يتيح لنا تجنب إعلان متغيرات الهياكل المختلفة؛ يمكننا بدلاً من ذلك إنشاء مجموعة من الهياكل تحتوي على معلومات مختلفة عن الكيانات المختلفة.
يمكن تعريف مصفوفة الهياكل في لغة C كجمع من متغيرات الهياكل، حيث يحتوي كل متغير على معلومات حول كيان مختلف. يمكن استخدام مصفوفة الهياكل في لغة C لتخزين معلومات عن عدة كيانات من أنواع بيانات مختلفة. مصفوفة الهياكل تُسمى أيضًا مجموعة الهياكل.
لن نرى مثالاً على كيفية تخزين معلومات 5 طلاب وطباعتها باستخدام مصفوفة الهياكل.
#include <stdio.h> #include <string.h> struct student{ int rollno; char name[10]; }; int main(){ int i; struct student st[5]; printf("ادخل بيانات 5 طلاب"); for(i=0;i<5;i++){ printf("\nادخل الرقم:"); scanf("%d",&st[i].rollno); printf("\nادخل الاسم:"); scanf("%s",&st[i].name); } printf("\nقائمة معلومات الطلاب:"); for(i=0;i<5;i++){ printf("\nالرقم:%d, الاسم:%s",st[i].rollno,st[i].name); } return 0; }
الإخراج:
ادخل بيانات 5 طلاب ادخل الرقم: 1 ادخل الاسم: Sonoo ادخل الرقم: 2 ادخل الاسم: Ratan ادخل الرقم: 3 ادخل الاسم: Vimal إدخال الرقم: 4 إدخال الاسم: James إدخال الرقم: 5 إدخال الاسم: Sarfraz قائمة معلومات الطلاب: الرقم: 1، الاسم: Sonoo الرقم: 2، الاسم: Ratan الرقم: 3، الاسم: Vimal الرقم: 4، الاسم: James الرقم: 5، الاسم: Sarfraz