數(shù)組的元素也可以是結(jié)構(gòu)類型的。因此可以構(gòu)成結(jié)構(gòu)型數(shù)組。結(jié)構(gòu)數(shù)組的每一個(gè)元素都是具有相同結(jié)構(gòu)類型的下標(biāo)結(jié)構(gòu)變量。在實(shí)際應(yīng)用中,經(jīng)常用結(jié)構(gòu)數(shù)組來表示具有相同數(shù)據(jù)結(jié)構(gòu)的一個(gè)群體。如一個(gè)班的學(xué)生檔案,一個(gè)車間職工的工資表等。

【案例描述】
下面代碼的作用是:輸入N人的學(xué)號(hào)、姓名和成績(jī),按成績(jī)升序輸出。請(qǐng)改正其中的錯(cuò)誤。
#include<stdio.h>;
#define N 10;
typedef struct{int sid,score;char name[10]}STUD;
main()
{ stud st[N],p;
int i,j;
for(i=0;i<N;i++)
scanf("%d%s%d",st[i].sid,st[i].name,st[i].score);
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(st[i].score>st[j].score)
{ p=st[i];st[i]=st[j];st[j]=p;}
for(i=0;i<N;i++)
printf("%2d:%d,%s,%d\n",i+1,st[i].sid,st[i].name,st[i].score);
}

【案例分析】
1、預(yù)處理命令不是語句,不能以分號(hào)結(jié)尾
2、C語言是區(qū)分大小的
3、scanf函數(shù)中,必須給定變量的地址
【參考代碼】
#include<stdio.h>
#define N 4
typedef struct{int sid,score;char name[10];}STUD;
main()
{ STUD st[N],p;
int i,j;
for(i=0;i<N;i++)
scanf("%d%s%d",&st[i].sid,st[i].name,&st[i].score);
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if(st[i].score>st[j].score)
{ p=st[i];st[i]=st[j];st[j]=p;}
for(i=0;i<N;i++)
printf("%2d:%d,%s,%d\n",i+1,st[i].sid,st[i].name,st[i].score);
}