修改下面代码 #include<iostream> #include<vector> using namespace std; //template<class Iterator> //在指定范围内输出元素 //void display_vector(Iterator first, Iterator last) //{ // for (; first != last; ++first) // cout << *first << '\t'; // cout << endl; //} template <typename T> T Average(T v) { T sum=0; for (int i = 0; i < v.size(); i++) sum += v[i]; return sum / v.size(); } int main() { int n = 0; cout << "请输入班级学生人数:\t" ; cin >> n; vector<float> V; float x; cout << "请依次输入学生的英语成绩:" << endl; for (int i = 0; i< n; i++) { cout << "第" << i+1 << "名同学的成绩为:\t" ; cin >> x; V.push_back(x); cout << endl; } cout << "该班英语平均成绩为:" << endl; cout << Average(V) << endl; cout << endl; system("pause"); return 0; }
时间: 2024-03-23 22:36:28 浏览: 75
这段代码的功能是让用户输入班级学生人数和每个学生的英语成绩,然后计算并输出班级的英语平均成绩。以下是修改建议:
1. 将Average函数的模板参数改为容器类型(vector<float>),以便在函数中使用v.size()和v[i]。
2. 在Average函数中添加类型限定符const,因为该函数不需要修改容器中的元素。
3. 将Average函数的返回类型改为float,因为平均数有可能是浮点数。
4. 将打印平均成绩的代码移到main函数中,以便更好地控制输出格式。
修改后的代码如下所示:
```
#include<iostream>
#include<vector>
using namespace std;
template <typename Container>
float Average(const Container& v) {
float sum = 0;
for (int i = 0; i < v.size(); i++)
sum += v[i];
return sum / v.size();
}
int main() {
int n = 0;
cout << "请输入班级学生人数:\t";
cin >> n;
vector<float> V;
float x;
cout << "请依次输入学生的英语成绩:" << endl;
for (int i = 0; i < n; i++) {
cout << "第" << i + 1 << "名同学的成绩为:\t";
cin >> x;
V.push_back(x);
cout << endl;
}
float avg = Average(V);
cout << "该班英语平均成绩为:" << avg << endl;
cout << endl;
system("pause");
return 0;
}
```
阅读全文