原题链接:[编程入门]结构体之成绩统计2
解题思路:
在1050题的基础上;
添加一个平均分成员变量ave;
在主函数中,所有成绩的平均分输出;
输出,个人平均分最高的学生信息;
下面代码只是给思路,不是纯正c++,c和c++的混合体,为了方便,就那样写了
参考代码:
#include <iostream>
#include <string.h>
using namespace std;
class student {
public:
char token[20];
char name[20];
double math;
double pe;
double el;
double ave; //平均分
void input(); //输入函数
void output(); //输出函数
};
void student:: input()
{
cin >> token;
cin >> name;
cin >> math;
cin >> pe;
cin >> el;
ave = (math + pe + el) / 3; //求平均分
}
void student::output() //输出学生信息
{
cout << token
<< " "
<< name
<< " "
<< math
<< " "
<< pe
<< " "
<< el;
}
int main()
{
int x;
cin >> x;
student *s = new student[x]; //创建对象数组
for ( int i = 0; i < x; i++ ) //输入学生信息
s[i].input();
double mave = 0, pave = 0, eave = 0; //数学,体育,英语的平均分
for ( int i = 0; i < x; i++ ) //求总分
{
mave = mave + s[i].math;
pave = pave + s[i].pe;
eave = eave + s[i].el;
}
mave /= x; //求总体平均分
pave /= x;
eave /= x;
int max = 0; //个人平均分最高的学生下标
double Max = 0; //最大个人平均分
cout << mave << " " << pave << " " << eave << endl; //输出总体每科的平均分
for ( int i = 0; i < x; i++ ) //求个人平均分最大的学生
{
if ( Max < s[i].ave )
{
Max = s[i].ave; max = i;
}
}
s[max].output(); //输出个人平均分最大的学生
return(0);
}别忘点赞哦-.-
0.0分
21 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
@Sea #include<stdio.h> struct grades{ char number[10]; char name[10]; int a[4]; }; void input(struct grades *fun,int n);//输入 void output(struct grades *fun,int n);//输出 int main() { int n; scanf("%d ",&n); struct grades fun[n]; input (fun,n); output(fun,n); return 0; } void input(struct grades *fun,int n ) { int i; for(i=0;i<n;i++) {scanf("%s %s %d %d %d ",&fun[i].number,&fun[i].name,&fun[i].a[0],&fun[i].a[1],&fun[i].a[2]); fun[i].a[3]=fun[i].a[0]+fun[i].a[1]+fun[i].a[2]; } } void output (struct grades *fun,int n) { int i,count=0,max=0; int sum1=0,sum2=0,sum3=0; for(i=0;i<n;i++) { if (max<fun[i].a[3]) { max=fun[i].a[3]; count=i;} sum1+=fun[i].a[0]; sum2+=fun[i].a[1]; sum3+=fun[i].a[2]; } printf("%.f %.f %.f ",double (sum1/n),double(sum2/n),double (sum3/n)); printf("%s %s %d %d %d",fun[count].number,fun[count].name,fun[count].a[0],fun[count].a[1],fun[count].a[2]); } 大佬能帮我看看错哪儿了吗#include<iostream> struct student{ char name[10]; char id[10]; int a,b,c; }; struct student D[100]; int main(int argc, char *argv[]){ int n; int sum1=0; int sum2=0; int sum3=0; std::cin>>n; for(int i = 0; i<n; i++){ std::cin>>D[i].id>>D[i].name>>D[i].a>>D[i].b>>D[i].c; sum1+=D[i].a; sum2+=D[i].b; sum3+=D[i].c; } std::cout<<sum1/n<<" "<<sum2/n<<" "<<sum3/n<<std::endl; int max = D[0].a+D[0].b+D[0].c; int sum = 0; int t = 0; for(int i = 0; i<n; i++){ sum = D[i].a+D[i].b+D[i].c; if(sum>max){ t = i; } } std::cout<<D[t].id<<" "<<D[t].name<<" "<<D[t].a<<" "<<D[t].b<<@杨少 [1].english,stu[1].math,stu[1].chinese);else printf("%s %s %d %d %d",stu[0].num,stu[0].name,stu[0].english,stu[0].math,stu[0].chinese);求大佬告诉错在哪#include <stdio.h> struct stud { char num[20]; char name[20]; int english; int math; int chinese; }stu[10]; int main() { int i,n,ar1,ar2,ar3,s1=0,s2=0,s3=0; int a[10],max; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%s%s%d%d%d",&stu[i].num,&stu[i].name,&stu[i].english,&stu[i].math,&stu[i].chinese); a[i]=stu[i].english+stu[i].math+stu[i].chinese; } for(i=0;i<n;i++) { s1=s1+stu[i].english; s2=s2+stu[i].math; s3=s3+stu[i].chinese; } ar1=s1/2; ar2=s2/2; ar3=s3/2; printf("%d %d %d\n",ar1,ar2,ar3); max=a[0]; if(a[1]>max) printf("%s %s %d %d %d",stu[1].num,stu[1].name,stu#include<stdio.h> struct student { char num[10]; char name[10]; int score[3]; }; void input(struct student stu[],int n ) { for (int i = 0; i < n; i++) { scanf("%s%s%d%d%d", stu[i].num, stu[i].name, &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]); } } void print(struct student stu[], int n) { double a; for (int i = 0; i < 3; i++) { a = 0; for (int j = 0; j < n; j++) { a += stu[j].score[i]; } printf("%.0lf ", a / n); } printf("\n"); int c = 0,d=0; for (int i = 0; i < n; i++) { int b = 0; for (int j = 0; j < 2; j++) { b += stu[i].score[j]; if (b>c)#include <stdio.h> struct Student { char num[100]; char name[100]; int a1,a2,a3; int sum; }stu[50]; int main(){ int n,i,k; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%s %s %d %d %d",stu[i].num,stu[i].name,&stu[i].a1,&stu[i].a2,&stu[i].a3); stu[i].sum=stu[i].a1+stu[i].a2+stu[i].a3; } int s1=stu[0].a1,s2=stu[0].a2,s3=stu[0].a3; int max=stu[0].sum; for(i=1;i<n;i++){ if(max<stu[i].sum){ max=stu[i].sum; k=i; } s1=s1+stu[i].a1; s2=s2+stu[i].a2; s3=s3+stu[i].a3; } printf("%d %d %d\n",s1/n,s2/n,s3/n); 还请大佬帮小弟看一下,老是运行错误%50!