输入N个学生M门课的分数统计每个学生的平均分、总分。输出信息有学号(暂时用int类型)、各科平均分和总分
时间: 2023-05-25 15:05:12 浏览: 88
假设输入格式为:
第一行为两个正整数N和M,表示有N个学生和M门课程
接下来N行,每行为M个非负整数,表示该学生对应的M门课程的分数
输出格式为:
对于每个学生,输出一行,包括以下信息:学号、各科平均分、总分,中间以空格分隔。学生信息按照学号递增的顺序输出。
示例输入:
3 4
80 70 90 85
75 85 95 70
90 80 75 65
示例输出:
1 81.25 325
2 80 330
3 77.5 310
思路:
1.定义一个结构体Student,包含学生的学号(id)、各科分数(grades)和总分(total)。
2.定义一个函数input,用于输入每个学生的成绩,并计算出各个学科的平均分和总分,存储在定义的结构体Student中。
3.定义一个函数output,用于输出每个学生的学号、各科平均分和总分,按照学号递增的顺序输出。
4.在main函数中调用input函数和output函数。
代码实现如下:
相关问题
输入N个学生M门课的分数统计每个学生的平均分、总分。输出信息有学号(暂时用int类型)、各科平均分和总分。(N和M用符号常量或常变量定义)
#include <iostream>
using namespace std;
const int N = 100; // 最多100个学生
const int M = 5; // 最多5门课
int main() {
int scores[N][M]; // 分数矩阵,第i个学生第j门课的分数为scores[i][j]
int n, m;
cin >> n >> m; // 输入学生数和课程数
// 输入每个学生每门课的分数
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> scores[i][j];
}
}
// 输出每个学生的平均分和总分
for (int i = 0; i < n; i++) {
int sum = 0;
for (int j = 0; j < m; j++) {
sum += scores[i][j]; // 累加总分
}
double avg = (double)sum / m; // 计算平均分
cout << "学号:" << i << " ";
cout << "各科平均分:" << avg << " ";
cout << "总分:" << sum << endl;
}
return 0;
}
输入 N 个学生 M 门课的分数,统计每个学生的平均分、总分。输出信息有 学号(暂时用 int 类型)、各科平均分和总分。(N 和 M 用符号常量或常变 量定义
#include <iostream>
using namespace std;
const int N = 100; // 最多有100个学生
const int M = 5; // 一共有5门课
int main() {
int scores[N][M]; // 存储每个学生的分数
int sum[N] = {0}; // 存储每个学生的总分
double avg[N] = {0}; // 存储每个学生的平均分
// 输入每个学生的分数
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int id;
cin >> id;
for (int j = 0; j < M; j++) {
cin >> scores[id][j];
sum[id] += scores[id][j];
}
avg[id] = (double)sum[id] / M;
}
// 输出每个学生的平均分和总分
for (int i = 0; i < N; i++) {
if (sum[i] != 0) { // 只输出有成绩的学生
cout << i << " ";
printf("%.1f ", avg[i]);
cout << sum[i] << endl;
}
}
return 0;
}
阅读全文