int main() { int n,m; cin>>n>>m; int sum=0; int scores[101]; for(int i=0;i<n;i++){ scores[i]=2*(i+1);} for(int i=0;i<n/m;i++){ for(int j=0;i<m;j++){sum=sum+scores[i*m+j];} cout<<sum/m<<endl; } int a=0; if(n%m!=0){ for(int i;i<n%m;i++){a=a+scores[n-n%m+i];} cout<<a/m; } return 0; }
时间: 2024-04-15 09:30:47 浏览: 95
cpp代码-(一维数组)计算n位学生成绩的平均分与均方差
这是一个计算成绩平均值的程序。它首先从用户输入中读取两个整数n和m,然后使用循环计算每个学生的分数,并将它们存储在一个名为scores的数组中。接下来,它使用嵌套循环将每个班级的分数相加,并计算平均值,然后输出结果。最后,如果学生人数不能被班级人数整除,则将剩余的学生分数求和,计算平均值并输出。
请注意,这个程序中有几个错误:
1. 第一个for循环中,数组scores的大小应为101而不是n。
2. 第二个for循环中,内部循环的控制变量应为j而不是i。
3. 第二个for循环中,应该在每次班级分数求和之前将sum重置为0。
4. 第三个for循环中,控制变量i应初始化为0。
5. 最后一个for循环中,控制变量i应初始化为0。
下面是修正过的代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int sum = 0;
int scores[101];
for (int i = 0; i < 101; i++) {
scores[i] = 2 * (i + 1);
}
for (int i = 0; i < n / m; i++) {
sum = 0;
for (int j = 0; j < m; j++) {
sum += scores[i * m + j];
}
cout << sum / m << endl;
}
int a = 0;
if (n % m != 0) {
for (int i = 0; i < n % m; i++) {
a += scores[n - n % m + i];
}
cout << a / m;
}
return 0;
}
```
希望对你有帮助!如果你有任何其他问题,请随时问我。
阅读全文