(求数组平均值) 编写两个重载函数,返回一个数组的平均值,函数声明如下: int average(const int* array, int size); //int的平均值保留为int即可。 double average(const double* array, int size);
时间: 2023-12-11 08:03:52 浏览: 35
好的,以下是实现这两个函数的代码:
```c++
int average(const int* array, int size){
int sum = 0;
for(int i = 0; i < size; i++){
sum += array[i]; // 累加数组中的元素
}
return sum / size; // 返回平均值(由于要保留为int类型,所以直接舍去小数部分)
}
double average(const double* array, int size){
double sum = 0.0;
for(int i = 0; i < size; i++){
sum += array[i]; // 累加数组中的元素
}
return sum / size; // 返回平均值
}
```
这两个函数都接受一个指向数组的指针和数组的大小作为参数。第一个函数计算整数数组的平均值,由于要保留为int类型,所以直接舍去小数部分。第二个函数计算双精度浮点数数组的平均值,并返回一个双精度浮点数。需要注意的是,如果数组中的元素数量为0,则这两个函数会导致除以0的错误。
相关问题
编写两个重载函数,返回一个数组的平均值,函数声明如下: int average(const int* array, int size); //int的平均值保留为int即可。 double average(const double* array, int size);
非常感谢您的提问。关于您的问题,我可以为您提供以下两个函数的代码实现,其中一个函数用于计算整数数组的平均值,另一个函数用于计算双精度浮点数数组的平均值:
```cpp
// 计算整数数组的平均值
int average(const int* array, int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += array[i];
}
return sum / size;
}
// 计算双精度浮点数数组的平均值
double average(const double* array, int size) {
double sum = 0;
for (int i = 0; i < size; i++) {
sum += array[i];
}
return sum / size;
}
```
这两个函数分别接受一个指向数组的指针和数组的大小。第一个函数将整数数组中的所有元素相加,并返回平均值。第二个函数也是相同的,但处理的是双精度浮点数数组。请注意,第二个函数返回的是double类型的平均值,这可以更精确地表示平均数。如果您还有其他问题,请随时与我联系。
创建一个新的数组,代替当前数组。编写一个函数,函数头如下: int* doubleCapacity(const int* list, int size) 函数返回一个新的数组,大小是原数组list的两倍。C++
语实现如下:
```c
int* doubleCapacity(const int* list, int size) {
int* newArray = malloc(sizeof(int) * size * 2);
for (int i = 0; i < size; i++) {
newArray[i] = list[i];
}
return newArray;
}
```
其中,使用了动态内存分配函数malloc来分配新的数组空间,大小为原数组大小的2倍,然后将原数组中的数据拷贝到新数组中,并返回新数组的指针。