void out_row(arr,n)
int n;
struct stu arr[];
{
float row[4]={0,0,0,0};
int i,j;
f o r ( i = 0 ; i < 4 ; i + + )
{
f o r ( j = 0 ; j < n ; j + + )
r o w [ i ] = r o w [ i ] + a r r [ j ] . s c o r e [ i ] ;
r o w [ i ] = r o w [ i ] / n ;
}
printf("|%19c|",' ');
for (i=0;i<4;i++)
p r i n t f ( " % 7 . 2 f | " , r o w [ i ] ) ;
p r i n t f ( " \ n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n " ) ;
}
程序中要謹慎處理以數(shù)組名作函數(shù)的參數(shù)。由于數(shù)組名作為數(shù)組的首地址,在形參和實參結(jié)合時,傳遞給子程序的就是數(shù)組的首地址。形參數(shù)組的大小不定義,以表示與調(diào)用函數(shù)的數(shù)組保持一致。在定義的結(jié)構(gòu)體內(nèi),成員score[3]用于表示計算的平均成績,也是我們
用于排序的依據(jù)。我們無法用數(shù)組元素進行相互比較,而只能用數(shù)組元素的成員score[3]進行比較。在需要交換的時候,用數(shù)組元素的整體包括姓名、學(xué)號、三科成績及平均成績進行交換。在程序order()函數(shù)中,比較采用:arr[j].score[3]>arr[j+1].score[3],而交換則采用:
arr[j]arr[j+1]
int n;
struct stu arr[];
{
float row[4]={0,0,0,0};
int i,j;
f o r ( i = 0 ; i < 4 ; i + + )
{
f o r ( j = 0 ; j < n ; j + + )
r o w [ i ] = r o w [ i ] + a r r [ j ] . s c o r e [ i ] ;
r o w [ i ] = r o w [ i ] / n ;
}
printf("|%19c|",' ');
for (i=0;i<4;i++)
p r i n t f ( " % 7 . 2 f | " , r o w [ i ] ) ;
p r i n t f ( " \ n - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n " ) ;
}
程序中要謹慎處理以數(shù)組名作函數(shù)的參數(shù)。由于數(shù)組名作為數(shù)組的首地址,在形參和實參結(jié)合時,傳遞給子程序的就是數(shù)組的首地址。形參數(shù)組的大小不定義,以表示與調(diào)用函數(shù)的數(shù)組保持一致。在定義的結(jié)構(gòu)體內(nèi),成員score[3]用于表示計算的平均成績,也是我們
用于排序的依據(jù)。我們無法用數(shù)組元素進行相互比較,而只能用數(shù)組元素的成員score[3]進行比較。在需要交換的時候,用數(shù)組元素的整體包括姓名、學(xué)號、三科成績及平均成績進行交換。在程序order()函數(shù)中,比較采用:arr[j].score[3]>arr[j+1].score[3],而交換則采用:
arr[j]arr[j+1]

