| 结构体数组的定义和引用(二) | 
          
            |  | 
          
            | www.nanhushi.com     佚名   不详  | 
          
            | 
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 " ) ;
 }
 
   
   程序中要谨慎处理以数组名作函数的参数。由于数组名作为数组的首地址,在形参和实参结合时,传递给子程序的就是数组的首地址。形参数组的大小最好不定义,以表示与调用函数的数组保持一致。在定义的结构体内,成员score[3]用于表示计算的平均成绩,也是我们
 用于排序的依据。我们无法用数组元素进行相互比较,而只能用数组元素的成员score[3]进行比较。在需要交换的时候,用数组元素的整体包括姓名、学号、三科成绩及平均成绩进行交换。在程序order()函数中,比较采用:arr[j].score[3]>arr[j+1].score[3],而交换则采用:
 arr[j]arr[j+1]
 
 | 
          
            |   | 
 | 
          
            | 文章录入:杜斌    责任编辑:杜斌 | 
          
            |  | 上一篇文章: 结构体数组的定义和引用(一) 下一篇文章: 结构体类型变量的定义和引用(一)
 | 
          
            | 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | 
          
            |  | 
 
 |