输入3个学生的4门课程的考试成绩,编写程序计算并输出每个学生的平均分和每门课程的平均分。救命!!!
2条回答 默认 最新
- qzjhjxj 2021-09-02 10:21关注
这是上周写的,每位学生平均分,每门课目平均分,成绩最高的学生序号和课目,不及格学生序号和各门课成绩,供参考:
#include<iostream> #include<string> #include<time.h> constexpr auto N = 3; //3个学生; constexpr auto M = 4; //4门课程; using namespace std; typedef struct student { string num; //学号 string name;//姓名 float score[M];//课目成绩 float avg; //每个学生4门课目平均分 }Student; void Input_info(Student* stu);//手工信息录入,平均分/学生 void Init_data(Student* stu); //初始化函数,平均分/学生 void Hight_score(Student* stu);//成绩最高的学生序号和课目 void fail_score(Student* stu);//不及格学生序号和各门课成绩 void avg_score(Student* stu); //每课目平均分 void print(Student* stu); //输出信息 int main() { Student stu[N]; srand((unsigned int)time(NULL));//生成随机数 //Input_info(stu); Init_data(stu); print(stu); Hight_score(stu); fail_score(stu); avg_score(stu); return 0; } void Input_info(Student* stu) { int i, j; cout << "输入" << N << "位学生学号、姓名及" << M << "门课目成绩" << endl; for (i = 0; i < N; i++) { cin >> stu[i].num >> stu[i].name; stu[i].avg = 0; for (j = 0; j < M; j++) { cin >> stu[i].score[j]; stu[i].avg += stu[i].score[j]; } stu[i].avg /= M; } } void Init_data(Student* stu) { string nameseed = "ABCDEFGH"; string numseed = "123456789"; int i, j; for (i = 0; i < N; i++) { stu[i].num = "00000000"; stu[i].num += numseed[i]; stu[i].name = "student_"; stu[i].name += nameseed[i]; stu[i].avg = 0; for (j = 0; j < M; j++) { stu[i].score[j] = rand() % 61 + 40; stu[i].avg += stu[i].score[j]; } stu[i].avg /= M; } } void Hight_score(Student* stu) { int i, j; float max; cout << endl << "---成绩最高的学生---" << endl; cout << endl << " 学号\t\t课目" << endl << endl; for (j = 0; j < M; j++) { max = stu[0].score[j]; for (i = 0; i < N; i++) { if (max < stu[i].score[j]) max = stu[i].score[j]; } for (i = 0; i < N; i++) { //同一课目,最高分相同所有学生 if (stu[i].score[j] == max) cout << stu[i].num << "\t" << "课目" << j + 1 << endl; } } } void fail_score(Student* stu) { int i, j, k = 0; for (i = 0; i < N; i++) { for (j = 0; j < M; j++) { if (stu[i].score[j] < 60) break; } if (j < M) { if (k == 0) { cout << endl << "---不及格学生序号和各门课成绩---" << endl << endl; cout << " 学号\t\t" << "课目1\t" << "课目2\t" << "课目3\t" << "课目4" << endl << endl; } k++; cout << stu[i].num; for (j = 0; j < M; j++) cout << "\t" << stu[i].score[j]; cout << endl; } } if (k == 0) cout << endl << "---无成绩不及格的学生---" << endl << endl; } void avg_score(Student* stu) { int i, j; float avg; print(stu); cout << "各课目平均分:\t\t"; for (j = 0; j < M; j++) { avg = 0; for (i = 0; i < N; i++) { avg += stu[i].score[j]; } cout << "\t" << avg / N; } cout << endl << endl; } void print(Student* stu) { int i, j; cout << endl << "学号\t\t" << "姓名\t\t" << "课目1\t" << "课目2\t" << "课目3\t" << "课目4\t" << "平均分" << endl << endl; for (i = 0; i < N; i++) { cout << stu[i].num << "\t" << stu[i].name; for (j = 0; j < M; j++) cout << "\t" << stu[i].score[j]; cout << "\t" << stu[i].avg << endl; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 宇视监控服务器无法登录
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥15 DruidDataSource一直closing
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据