900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 10个学生 每个学生数据包括学号 姓名 成绩 输出3门总平均成绩 以及最高分学生数

10个学生 每个学生数据包括学号 姓名 成绩 输出3门总平均成绩 以及最高分学生数

时间:2022-06-05 15:01:38

相关推荐

10个学生 每个学生数据包括学号 姓名 成绩 输出3门总平均成绩 以及最高分学生数

#include<iostream>#include<string>using namespace std;struct Student{string name;int num;float score[3];float average;};//主函数int main(){void intput(Student stu[10]);void maxprint(Student stu[10]);Student stu[10];intput(stu);maxprint(stu);//结构体数组传参,参送数组名即可system("pause");return 0;}//定义输入函数void intput(Student stu[10])//结构体形参格式:结构体名+结构体变量名(如果是数组要加数组大小){for(int i=0;i<10;i++){//输入10个学生信息cin>>stu[i].name>>stu[i].num;for(int j=0;j<3;j++)//嵌套循环输入成绩cin>>stu[i].score[j];cout<<"输入下一位同学信息"<<endl;}}//分数最高学生的信息输出函数void maxprint(Student stu[10]){float ave=0,max=0;int maxid=0;//maxid不能写在上一行float里,maxid实际意义是记录分最高学生的下标float allsum=0;for(int i=0;i<10;i++){float sum=0;for(int j=0;j<3;j++)sum=sum+stu[i].score[j];allsum=sum+allsum;ave=sum/3;stu[i].average=ave;if(sum>max){max=sum;maxid=i;}//for里嵌套一个if语句,通过打擂台思路选出最大分下标}cout<<"全班总平均"<<allsum/30<<endl;cout<<stu[maxid].name<<" "<<stu[maxid].num<<" "<<stu[maxid].average<<ave<<endl;}

总结

第一次在机房做知道要把数据传参,但是不知道怎么传参,定义了一个结构体指针传参,运行不了,正确做法传送结构体:结构体名+结构体变量名,结构体变量为数组时加上数组大小

在maxprint函数里,定义新变量maxid记录下标时结合实际意义,定义为int型,不能一起放在上一行float里

找出最高分学生下标思路(打擂台),用定义两个变量max,maxid等于0,在for循环里嵌套一个if语句,用max与每个学生分数比较,max<当前学生分数就交换同时用maxid记录当前学生下标,大于当前学生分数就不变继续与下一个数比较

10个学生 每个学生数据包括学号 姓名 成绩 输出3门总平均成绩 以及最高分学生数据(C++程序设计)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。