编写一个函数模板,求一个具有N个元素的数组之和,并在主函数中调用,分别计算int型数组之和和float型数组之和
时间: 2023-09-10 13:05:55 浏览: 134
### 回答1:
以下是一个求和函数的模板,可以根据需要分别计算 int 类型数组和 float 类型数组的和:
```python
def sum_array(arr):
"""
计算一个数组的元素之和
:param arr: 数组
:return: 元素之和
"""
result = 0
for i in range(len(arr)):
result += arr[i]
return result
```
对于 int 类型的数组,直接调用函数即可:
```python
# 定义一个包含 5 个元素的 int 类型数组
int_array = [1, 2, 3, 4, 5]
# 计算 int 类型数组的和
int_sum = sum_array(int_array)
# 输出结果
print(int_sum) # 输出 15
```
对于 float 类型的数组,可以稍作修改,在循环内使用浮点数相加即可:
```python
# 定义一个包含 5 个元素的 float 类型数组
float_array = [1.0, 2.0, 3.0, 4.0, 5.0]
# 计算 float 类型数组的和
float_sum = 0.0
for i in range(len(float_array)):
float_sum += float_array[i]
# 输出结果
print(float_sum) # 输出 15.0
```
注意,在计算 float 类型数组的和时,需要将结果初始化为浮点数类型的 0.0。
### 回答2:
可以编写以下的函数模板来求一个具有N个元素的数组之和:
```c++
#include<iostream>
template<typename T>
T sum(T arr[], int N) {
T sum = 0;
for (int i = 0; i < N; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int arr1[] = {1, 2, 3, 4, 5};
float arr2[] = {1.1, 2.2, 3.3, 4.4, 5.5};
int intSum = sum(arr1, sizeof(arr1) / sizeof(arr1[0]));
float floatSum = sum(arr2, sizeof(arr2) / sizeof(arr2[0]));
std::cout << "int型数组之和: " << intSum << std::endl;
std::cout << "float型数组之和: " << floatSum << std::endl;
return 0;
}
```
此函数模板使用`typename T`来表示通用的数据类型,`T arr[]`表示传入的数组,`int N`表示数组的大小。在函数中,我们使用一个变量 `sum` 来保存累加的和,通过遍历数组将每个元素加到 `sum` 中,最后返回结果。
在 `main` 函数中,我们分别声明了一个 `int` 型数组 `arr1` 和一个 `float` 型数组 `arr2` ,并调用 `sum` 函数来计算它们的和。最后,我们通过 `std::cout` 输出计算得到的结果。
### 回答3:
下面是一个求一个具有N个元素的数组之和的函数模板的例子:
```cpp
#include <iostream>
template <typename T>
T arraySum(T arr[], int size) {
T sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int intArr[] = {1, 2, 3, 4, 5};
float floatArr[] = {1.1, 2.2, 3.3, 4.4, 5.5};
int intSum = arraySum(intArr, sizeof(intArr) / sizeof(int));
float floatSum = arraySum(floatArr, sizeof(floatArr) / sizeof(float));
std::cout << "Int Array Sum: " << intSum << std::endl;
std::cout << "Float Array Sum: " << floatSum << std::endl;
return 0;
}
```
这个函数模板`arraySum`接受一个数组`arr[]`和数组大小`size`作为参数,通过遍历数组元素将它们累加到`sum`变量中,并返回最终的和。在主函数中,我们声明了一个`int`型数组`intArr`和一个`float`型数组`floatArr`,然后分别调用`arraySum`函数来计算这两个数组的和。最后,我们将结果打印输出。
以上代码将输出:
```
Int Array Sum: 15
Float Array Sum: 16.5
```
其中,`intArr`的和为1+2+3+4+5=15,`floatArr`的和为1.1+2.2+3.3+4.4+5.5=16.5。
阅读全文