Loading... 用指向结构体变量地指针作实参,将结构体变量的指针传给实参。 <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-09f9b40fe2d565f706f94bf4ef892f99100" aria-expanded="true"><div class="accordion-toggle"><span>题目</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-09f9b40fe2d565f706f94bf4ef892f99100" class="collapse in collapse-content"><p></p> 有n个结构体变量 , 内含学生学号 、姓名和三门课程的成绩。要求输出平均成绩最高的学生信息,分别利用3个函数来实现不同的功能 。 <p></p></div></div></div> ```cpp #include <stdio.h> #define N 3 //通过改变 N 对应的值来实现人员数目的改变 struct result //定义结构体 { int num ; //学号 char name [ 20 ] ; //名字 double score [ 3 ] ; //成绩 double aver ; //平均成绩 }; int main ( ) { struct result student[ N ] , *p ; //声明数组结构体 p = student ; //利用指针指向结构体 void input ( struct result student [ ] ) ; //声明输入函数 struct result max ( struct result student [ ] ) ; //声明求平均数最大函数 void print ( struct result student ) ; //声明输出函数 input ( p ) ; //调用输入最大平均数函数 print ( max ( p ) ) ; //调用输出函数 } void input ( struct result student [ ] ) { int i ; for ( i = 0 ; i < N ; i ++ ) { printf ( "请输入第%d个人的:学号 、姓名、 三科成绩 \n" , i + 1 ) ; scanf ( "%d %s %lf %lf %lf" , &student[ i ].num , student[ i ].name , &student[ i ].score[0] , &student[ i ].score[ 1 ] , &student[ i ].score[ 2 ] ) ; student[ i ].aver = ( student [ i ].score[ 0 ] + student [ i ].score[ 1 ] + student [ i ].score [ 2 ] ) / 3.0 ; } } struct result max ( struct result student[ ] ) // 声明最大平均数结构体函数 { int m = 0 , i ; for ( i = 1 ; i < N ; i ++ ) { if ( student [ i ].aver > student [ m ].aver ) { m = i ; } } return student [ m ] ; } void print ( struct result student ) { printf ( "学号为%d\n 姓名为 %s \n 三门成绩为 : %f %f %f \n 平均成绩为 : %f " , student.num , student.name , student.score[ 0 ] , student.score[ 1 ] , student.score[ 2 ] , student.aver ) ; } ``` 最后修改:2021 年 05 月 24 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果文章有用,请随意打赏。