One structure can be nested
within another structure in C. Let us consider an structure mark which has
members subject and marks. This can be nested within another structure student.
This can be done as follow.
struct mark{
char subject[20];
float marks;
};
This structure can be nested within
another structure as its member.
struct student {
char name[20];
int roll;
struct mark studentM;
char remark;
}s;
Here, structure student contains a
member studentM which is itself a structure with two members. The
members within structure mark are accessed as
s.studentM.subject and s.studentM.marks
But the members within student
structure are accessed as usual
s.name, s.roll and s.remark
The above nested structure can be
nested in alternative way.
struct student {
char name[20];
int roll;
char remark;
struct mark{
char subject[20];
float marks;
}studentM;
}s;
Example:
Create a structure named mark that has
subject and marks as its members. Include this structure as a member for
student structure created in program1. Use this structure to read and display
student’s name, roll, subject, marks and remarks.
void main()
{
struct mark{
char subject[20];
float marks;
};
struct student {
char name[20];
int roll;
struct mark studentM;
char remark;
};
struct student s;
printf("Enter name:\t");
scanf("%s",s.name);
printf("\nEnter roll:\t");
scanf("%d",&s.roll);
printf("\nEnter Subject
Name:\t");
scanf("%s",s.studentM.subject);
printf("\n Enter marks\t");
scanf("%f",&s.studentM.marks);
printf("Enter remark p for pass or f for fail\t");
s.remark=getche();
printf("\n\n\nThe Detail Information is\n");
printf("\Name=%s\tRoll=%d\nSubject=%s\tMarks=%f\nRemark=%c",s.name,
s.roll,s.studentM.subject,s.studentM.marks,s.remark);
getch();
}
Comments
Post a Comment