设计一个函数模板Average实现平均值的计算。编写程序提示用户输入一个班级中的学生人数n, 再提示用户依次输入n个人在英语课中的考试成绩,然后利用函数模板Average计算出平均成绩,并将结果显示出来。请使用Vector<T>类模板存储浮点数类型的考试成绩。
时间: 2024-02-15 14:02:09 浏览: 83
好的,下面是代码实现。
```c++
#include <iostream>
#include <vector>
using namespace std;
template<typename T>
T Average(vector<T> v) {
T sum = 0;
for (int i = 0; i < v.size(); i++) {
sum += v[i];
}
return sum / v.size();
}
int main() {
int n;
cout << "请输入学生人数:";
cin >> n;
vector<double> scores;
for (int i = 0; i < n; i++) {
double score;
cout << "请输入第" << i + 1 << "个学生的成绩:";
cin >> score;
scores.push_back(score);
}
double avg = Average(scores);
cout << "班级平均成绩为:" << avg << endl;
return 0;
}
```
代码解析:
1. 定义了一个函数模板 `Average`,用于计算任意类型的向量平均值。
2. 在 `main` 函数中,先让用户输入学生人数,然后依次输入每个学生的成绩,将成绩存储在 `vector<double> scores` 中。
3. 调用 `Average` 函数,将 `scores` 向量作为参数传入,计算平均值并赋值给 `avg` 变量。
4. 最后将平均值输出即可。
注意事项:
1. 由于使用了向量存储数据,需要在程序开头引入 `<vector>` 头文件。
2. 在定义 `Average` 函数时,需要使用模板类型 `typename T`,在函数参数中也需要使用向量类型 `vector<T>`。
3. 在 `main` 函数中,定义 `scores` 向量时,需要指定向量存储的数据类型为 `double`,即 `vector<double>`。如果需要存储整型数据,可以使用 `vector<int>`。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)