اجزاي يك ساختمان ميتوانند يك متغير معمولي ، آرايه و يا يك ساختمان باشند.
دو مورد اول را قبلا" مشاهده كرديم . در اين قسمت به بررسي مورد سوم مي پردازيم .
وقتي كه اجزاي يك ساختمان از نوع ساختمان باشند براي دسترسي به اجزاي آن بايد
اسامي متغيرهاي ساختمان را از بالاترين ساختمان به داخلي ترين ساختمان ذكر كرد.
مثال : برنامه اي كه مشخصات چند كارمند را به همراه تاريخ استخدام آنها از
ورودي خوانده و با اخذ تاريخ جاري ، سابقه خدمت كارمندان را محاسبه مي كند و
مشخصات كارمندي كه بيشترين سابقه خدمت را دارد به همراه توسط سن كارمندان به
خروجي منتقل مي كند .
#define MAX 100
main)(
{
int i / n /sumage=0 / maxold=0 ;
struct data {
int day ;
int month ;
int year ;
} today ;
struct employee {
char name [30];
int persno ;
struct data workdate ;
int age ;
int old ;
} emp[MAX] ;
struct employee maxemp={0} ;
printf("\n enter the number of");
printf(" employee: " );
scanf("%d"/&n );
printf("\n enter date" );
printf("(day month year" );
scanf("%d"/&today.day );
scanf("%d"/&today.month );
scanf("%d"/&today.year );
for( i=0 ; i < n ; i++)
{
printf("\n enter name:" );
scanf("%s"/emp[i].name );
printf("\n enter personel " );
printf("number: " );
scanf("%d"/&emp[i].persno );
printf("\n enter today date" );
pintf("(day month year" );
scanf("%d"/&emp[i].workdate.day );
scanf("%d"/&emp[i].workdate.month );
scanf("%d"/&emp[i].workdate.year );
printf("\n enter age: ");
scanf("%d"/&emp[i].age );
if( today.month <
emp[i].worldate.month ||
( today.month ==
emp[i].workdate.month &&
today.day >=
emp[i].workdate.day))
emp[i].old=today.year-
emp[i].workdate.year ;
else
emp[i].old=today.year-
emp[i].workdate.year - 1 ;
if( emp[i].old > maxold)
{
maxold=emp[i].old ;
maxemp=emp[i] ;
}
sumage+=emp[i].age ;
}
printf("\n the average of age");
printf(" is: %d"/sumage/n );
printf("\n the specification ");
printf("of a older person:" );
printf("\n the name is : ");
printf("%s"/maxemp.name );
printf("\n the persno is:");
printf("%d"/maxemp.persno );
printf("\n the age is :");
printf(": %d"/maxemp.age );
printf("\n the old is:");
printf("%d"/maxemp.old );
}
نمونه اي از خروجي برنامه مثال بالا : enter the number of employee:2
enter today date(day month year25 12 70
enter name:ahmad
enter personel number:1231
enter date(day month year12 2 60
enter age: 30
enter name:mohammad
enter personel number:4323
enter date(day month year2 12 55
enter age: 40
the average of age is:35
the specification of a older person:
the name is : mohammad
the persno is:4323
the age is :40
the old is: :o