题目内容:编写一个函数double avg(int A[],int s,int e),计算一个N(1≤N≤100)个元素的一维数组A,从第s个(以0为开始,下同),到第e个元素的平均值,其中0≤s<e<N。在主函数输入输出,调用函数avg计算。 输入格式:第1行输入整型n,第2行给A输入n个整型数据,第3行输入s和e,数据之间用空格隔开。 输出格式:输入double型,保留6位小数位。 输入样例: 10 1 2 3 4 5 6 7 8 9 10 1 8 输出样例: 5.500000 C++
时间: 2024-02-12 14:03:48 浏览: 58
java代码-定义一个一维数组,求出数组的最大值,最小值,平均值
以下是C++代码实现:
```c++
#include <iostream>
#include <iomanip>
using namespace std;
double avg(int A[], int s, int e) {
double sum = 0;
for (int i = s; i <= e; i++) {
sum += A[i];
}
return sum / (e - s + 1);
}
int main() {
int n;
cin >> n;
int A[n];
for (int i = 0; i < n; i++) {
cin >> A[i];
}
int s, e;
cin >> s >> e;
cout << fixed << setprecision(6) << avg(A, s, e) << endl;
return 0;
}
```
解释如下:
1. 首先输入数组的元素个数 `n`,然后定义一个一维数组 `A` 存储输入的元素。
2. 输入要计算平均值的起始位置 `s` 和结束位置 `e`。
3. 定义函数 `avg`,计算从第 `s` 个元素到第 `e` 个元素的平均值。
- 首先定义一个变量 `sum` 存储从第 `s` 个元素到第 `e` 个元素的和。
- 然后用循环遍历从第 `s` 个元素到第 `e` 个元素,并将它们相加,存入 `sum` 中。
- 最后用 `(e - s + 1)` 计算元素的个数,用 `sum` 除以它们的个数,得到平均值。
4. 在主函数中,调用函数 `avg` 计算平均值,并输出结果。
- 使用 `fixed` 和 `setprecision` 定义输出的小数位数为 6 位。
注意事项:
1. 数组下标从 0 开始。
2. 求和时需要先初始化为 0。
3. 输出时应使用 `fixed` 和 `setprecision` 控制输出格式。
阅读全文