计算数组中(自己向数组赋值),数字末尾偶数和与数字末 尾奇数和(小数假设都是两位小数)。考虑整型、小数等不同类型的数组。
时间: 2024-02-12 22:03:57 浏览: 112
vue踩坑记录之数组定义和赋值问题
为了计算数组中数字末尾偶数和与数字末尾奇数和,可以使用以下函数实现:
```C++
template <typename T>
void sum(T a[], int size, T& oddSum, T& evenSum) {
oddSum = 0;
evenSum = 0;
for (int i = 0; i < size; i++) {
if ((int)(a[i] * 100) % 10 % 2 == 0) { // 判断数字末尾是否为偶数
evenSum += a[i];
} else {
oddSum += a[i];
}
}
}
```
这个函数使用了模板(template)来支持不同类型的数组。函数有四个参数:数组a、数组大小size、数字末尾奇数和oddSum和数字末尾偶数和evenSum。函数的实现方式是:遍历数组,将数字末尾为偶数的元素加入evenSum,将数字末尾为奇数的元素加入oddSum,最后得到evenSum和oddSum的值即可。需要注意的是,在判断数字末尾是否为偶数时需要将小数乘以100并强制转换为int类型,再取个位数进行判断。
使用示例:
```C++
int main() {
int intArray[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
double doubleArray[] = {1.23, 2.34, 3.45, 4.56, 5.67, 6.78, 7.89, 8.90, 9.01, 10.12};
int intOddSum, intEvenSum;
double doubleOddSum, doubleEvenSum;
sum(intArray, 10, intOddSum, intEvenSum);
sum(doubleArray, 10, doubleOddSum, doubleEvenSum);
cout << "Int odd sum: " << intOddSum << endl;
cout << "Int even sum: " << intEvenSum << endl;
cout << "Double odd sum: " << doubleOddSum << endl;
cout << "Double even sum: " << doubleEvenSum << endl;
return 0;
}
```
输出结果:
```
Int odd sum: 25
Int even sum: 20
Double odd sum: 25.98
Double even sum: 25.68
```
阅读全文