题目要求的问题多,采用模块化编程方式,将问题进行分解如下: 1) 结构体类型数组的输入。 2) 求解各学生的三科平均成绩。 3) 按学生的平均成绩排序。 4) 按表格要求输出。 5) 求解组内学生单科平均成绩并输出。 6) 定义m a i n ( )函数,调用各子程序。 第一步,根据具体情况定义结构体类型。 struct stu { char name[20]. /*姓名* / long number. /*学号* / float score[4]. /* 数组依此存放E n g l i s h 、M a t h e m a 、P h y s i c s ,及A v e r a g e * / } . 由于该结构体类型会提供给每个子程序使用,是共用的,所以将其定义为外部的结构体 类型,放在程序的最前面。 第二步,定义结构体类型数组的输入模块。 void input(arr,n) /*输入结构体类型数组a r r 的n个元素* / struct stu arr[]. int n. { int i,j. char temp[30]. for (i=0.i{ printf("\ninput name,number,English,mathema,physic\n"). /*打印提示信息* / gets(arr[i].name). /输*入姓名*/ gets(temp). /输*入学号*/ a r r [ i ] . n u m b e r = a t o l ( t e m p ) . f o r ( j = 0 . j < 3 . j ) { gets(temp). /*输入三科成绩* / a r r [ i ] . s c o r e [ j ] = a t o i ( t e m p ) . } . } }