
有5个学生,每个学生的数据包括学号、姓名、三门课的成绩。
从键盘输入5个学生的数据,要求打印出每门课程的平均成绩,以及最高分学生的数据。(包括学号、姓名、三门课的成绩)。还是c++...
从键盘输入5个学生的数据,要求打印出每门课程的平均成绩,以及最高分学生的数据。(包括学号、姓名、三门课的成绩)。还是c++
展开
1个回答
展开全部
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | #include<iostream> #include<string.h> using namespace std; #define N 3//考试的科目数 #define M 5//全班的学生的数目 struct student { char name[20]; int score[N]; float aver; }stu[M]; void Creat(student *stu) { int i,n,j; char ch[2]= "!" ; printf ( "请依次输入学生的姓名和成绩:\n" ); for (i=0;i<M;i++) { scanf ( "%s" ,stu[i].name); float sum=0.0; for (j=0;j<N;j++) { scanf ( "%d" ,&stu[i].score[j]); sum=sum+stu[i].score[j]; } stu[i].aver=sum/N; } *stu[i].name=*ch; } void show(student *stu) { int i=0; float gread[N]={0.0}; printf ( "\n他们的成绩及平均分如下:\n" ); for (i=0;i<M;i++) { int j; printf ( "%-10s" ,stu[i].name); for ( j=0;j<N;j++) { printf ( "%-4d" ,stu[i].score[j]); gread[j]=gread[j]+stu[i].score[j]; } printf ( "%.2f" ,stu[i].aver); printf ( "\n" ); } printf ( "三科成绩的平均分是:\n" ); printf ( "%-8.2f %-8.2f %-8.2f\n" ,gread[0]/M,gread[1]/M,gread[2]/M); } void Sort(student *stu) { int i=0,k=0; student s,max=stu[0]; for (i=0;i<M;i++) { for ( int j=0;j<M-1-i;j++) { if (stu[j].aver<stu[j+1].aver) { s=stu[j]; stu[j]=stu[j+1]; stu[j+1]=s; } } } printf ( "\n成绩最好的是:\n" ); printf ( "%-10s" ,stu[0].name); for ( int j=0;j<N;j++) { printf ( "%-4d" ,stu[0].score[j]); } printf ( "\n" ); } void main() { int k; Creat(stu); Sort(stu); printf ( "\n" ); show(stu); } |
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |