解题思路:
在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分
25 人评分
#include<stdio.h> #include<string.h> typedef struct student { char id[50]; char name[50]; int g[3]; int sum; }stu; int sum(stu student) { int sum = 0; sum = student.g[0] + student.g[1] + student.g[2]; return sum; } double avg_s(stu student[], int num, int sub) { int sum = 0; int avg = 0; for (int i = 0; i < num; i++) { sum += student[i].g[sub]; } avg = (int)sum / num; return avg; } void max_s(stu student[], int num) { int cnt = 0; int max = student[0].sum; int max_id = 0; while (cnt < num - 1) { if (student[cnt].sum < student[cnt + 1].sum) { max = student[cnt +
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct student_st { char id[32]; char name[32]; int score[3]; } student_info; int input(student_info *P) { scanf("%s %s %d %d %d", P->id, P->name, &P->score[0], &P->score[1], &P->sco re[2]); return 0; } int main() { int N , i, j, max, flag = 0; student_info *list; scanf("%d", &N); int sum_course[N+1]; int sum_member[N+1]; int average[3]; memset(sum_course, 0, sizeof(sum_course)); memset(sum_member, 0, sizeof(sum_me
FoolHungry 2022-02-10 00:14:56 |
代码不完整啊兄弟
#include <stdio.h> struct Date { char num[10]; char name[10]; int grade1; int grade2; int grade3; } stu[100]; int main() { int sum1=0,sum2=0,sum3=0; int ave1=0,ave2=0,ave3=0; int max=0,san[100],I; int N; scanf("%d",&N); int i; for(i=0;i<N;i++) scanf("%s %s %d %d %d",&stu[i].num,&stu[i].name,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3); for(i=0;i<N;i++) { sum1+=stu[i].grade1; sum2+=stu[i].grade2; sum3+=stu[i].grade3; } for(i=0;i<N;i++) { san[i]=stu[i].grade1+stu[i].grade2+stu[i].grade3; if(max<san[i])
#include <stdio.h> #include <stdlib.h> struct Student{ char num[100]; char name[100]; float grade1; float grade2; float grade3; }student[100]; //struct DATA data; int main(){ int num; scanf("%d",&num); getchar(); for(int i=0;i<num;i++){ scanf("%s%s%f%f%f",student[i].num,student[i].name,&student[i].grade1,&student[i].grade2,&student[i].grade3); getchar(); } float a,b,c,sum[100]; for(int i=0;i<num;i++) { sum[i]=(student[i].grade1+student[i].grade2+student[i].grade3); } for(int i=0;i<num;i++){ a+=stude
#include<stdio.h> #include<string.h> struct student { char x[10],n[10]; int c[3]; }; int main() { struct student a[10],t[10]; int n,k,i,j; int sum1=0,sum2=0,sum3=0; scanf("%d",&k); n=k; while(n--) { scanf("%s %s %d %d %d",&a[n].x, &a[n].n ,&a[n].c[0],&a[n].c[1],&a[n].c[2]); sum1+=a[n].c[0]; sum2+=a[n].c[1]; sum3+=a[n].c[2]; } for(i=1;i<k;i++) { for(j=0;j<k-i;j++) if(a[j].c[0]+a[j].c[1]+a[j].c[2]>a[j+1].c[0]+a[j+1].c[1]+a[j+1].c[2]) { t[j]=a[j]; a[j]= a[j+1]; a[j+1]=t[j]; } } printf("%d %d %d\n",sum1/k,sum2/k,sum3/k); printf(
#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<<
zjnmbiss 2020-03-01 21:23:47 |
#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]); } 大佬能帮我看看错哪儿了吗
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:563 |
C语言训练-最大数问题 (C语言代码)浏览:633 |
C语言训练-计算1977!* (C++代码)浏览:843 |
【亲和数】 (C语言代码)浏览:491 |
Wu-求圆的面积 (C++代码)浏览:1883 |
printf基础练习2 (C语言代码)浏览:644 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:586 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1456 |
数组与指针的问题浏览:715 |
C二级辅导-阶乘数列 (C语言代码)浏览:508 |