1、訪問結構體成員
例:
struct student
{
char name[12];
char sex;
struct date birthday;
float sc[4];
}std,arr[5],*ps;
ps=&std;
ps->sex;
arr[2]。sc[3]
注:訪問結構體成員有兩種情況
1)如果物件是普通結構體變數,則應該寫為 變數。成員
2)如果物件是指向結構體的指標,則應該寫為 指標->成員
2、結構體的應用
例:某學生檔案定義如下:
學號 sno[5]
姓名 sname(10)
三門成績 score(3)
從鍵盤上輸入5個學生的檔案,分別輸出每個學生的平均分(保留2位小數)和總分最高的學生姓名。
#include
struct student
{
char sno[5],sname[10];
int score[3];
}s[5];
int sum[5];
void inPutdata()
{
int i;
for(i=0;i<5;i++)
{
printf(“請輸入第%d個學生的學號:\n”,i+1);
scanf(“%s”,s[i]。sno);
printf(“請輸入第%d個學生的姓名:\n”,i+1);
scanf(“%s”,s[i]。sname);
printf(“請輸入第%d個學生的三門成績:\n”,i+1);
scanf(“%d%d%d”,&s[i]。score[0],&s[i]。score[1],&s[i]。score[2]);
}
}
void outPut_average()
{
int i,j,t;
for(i=0;i<5;i++)
{
t=0;
for(j=0;j<=2;j++)
t=t+s[i]。score[j];
sum[i]=t;
printf(“第%d個學生的平均分%。2f\n”,i+1,t/3。0);
}
}
void outPut_name()
{
int i,max,index=0;
max=sum[0];
for(i=1;i<5;i++)
if(sum[i]>max)
{
max=sum[i];
index=i;
}
printf(“總分最高的學生是%s\n”,s[index]。sname);
}
main()
{
inPutdata();
outPut_average();
outPut_name();
}
C語言程式