用c++定义一个函数,计算一个整型数组的平均值。函数声明为int aver(int a[]);
时间: 2024-04-30 15:20:29 浏览: 88
下面是用 C 语言定义一个函数,计算一个整型数组的平均值,函数声明为 `int aver(int a[])`:
```c
int aver(int a[]) {
int sum = 0;
int len = sizeof(a) / sizeof(int);
for (int i = 0; i < len; i++) {
sum += a[i];
}
return sum / len;
}
```
这个函数首先定义了一个 `sum` 变量,用于存储数组中所有元素的和。然后,它计算数组的长度 `len`,这里使用了 `sizeof` 运算符,它返回一个指定类型的内存大小,单位是字节。因为数组元素的类型是 `int`,所以 `sizeof(int)` 表示一个 `int` 类型的内存大小,而 `sizeof(a)` 表示整个数组的内存大小。将两者相除,就得到了数组的长度。接下来,用一个循环将所有元素的值累加到 `sum` 中。最后,返回 `sum` 除以数组长度的结果,即为数组的平均值。
相关问题
)用dat1.dat中的前100个数据给数组int a[100]赋值,并在屏幕上输出(每行10个元素)。 2)使用函数 double isaver(int *p,int num) { } 求数组a中所有数组元素平均值。 3)把该函数放在头文件ISaver.h中以便在主函数中调用该函数。把所有小于平均值的数组元素(每行10个元素)和小于平均值的数组元素个数输出出来。
1)代码实现如下:
```c++
#include <iostream>
#include <fstream>
#include "ISaver.h"
using namespace std;
int main() {
int a[100];
ifstream fin("dat1.dat");
for (int i = 0; i < 100; i++) {
fin >> a[i];
cout << a[i] << " ";
if ((i + 1) % 10 == 0) cout << endl;
}
fin.close();
return 0;
}
```
2)代码实现如下:
```c++
double isaver(int *p, int num) {
double sum = 0;
for (int i = 0; i < num; i++) {
sum += p[i];
}
return sum / num;
}
```
3)ISaver.h头文件代码实现如下:
```c++
#ifndef ISAVER_H
#define ISAVER_H
double isaver(int *p, int num);
#endif
```
主函数中调用该函数的代码如下:
```c++
#include <iostream>
#include <fstream>
#include "ISaver.h"
using namespace std;
int main() {
int a[100];
ifstream fin("dat1.dat");
for (int i = 0; i < 100; i++) {
fin >> a[i];
}
fin.close();
double aver = isaver(a, 100);
cout << "平均值为:" << aver << endl;
int count = 0;
cout << "小于平均值的元素为:" << endl;
for (int i = 0; i < 100; i++) {
if (a[i] < aver) {
cout << a[i] << " ";
count++;
if (count % 10 == 0) cout << endl;
}
}
cout << endl;
cout << "小于平均值的元素个数为:" << count << endl;
return 0;
}
```
100个数据给数组int a[100]赋值,并在屏幕上输出(每行10个元素)。 2)使用函数 double isaver(int *p,int num) { } 求数组a中所有数组元素平均值。
好的,以下是代码实现:
```c++
#include <iostream>
using namespace std;
void printArray(int *p, int num) {
for (int i = 0; i < num; i++) {
cout << p[i] << " ";
if ((i + 1) % 10 == 0) {
cout << endl;
}
}
}
double isaver(int *p,int num) {
double sum = 0;
for (int i = 0; i < num; i++) {
sum += p[i];
}
return sum / num;
}
int main() {
int a[100];
for (int i = 0; i < 100; i++) {
a[i] = i + 1;
}
printArray(a, 100);
double aver = isaver(a, 100);
cout << "average: " << aver << endl;
return 0;
}
```
输出结果如下:
```
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
average: 50.5
```
阅读全文