C++编写void check函数:数组奇数加5偶数加10功能实现求助
解决C++ check函数数组元素修改问题
以下是实现需求的正确check函数代码:
void check(int S[], int n) { for (int i = 0; i < n; ++i) { if (S[i] % 2 != 0) { // 兼容正负奇数的判断方式 S[i] += 5; } else { S[i] += 10; } } }
核心细节说明
- 数组传参特性:C++中数组作为函数参数会退化为指针,直接修改
S[i]会同步作用于原数组,无需额外返回值。 - 奇偶判断修正:如果数组包含负奇数,
S[i] % 2 == 1会失效(例如-3 % 2结果为-1),用S[i] % 2 != 0能覆盖所有奇数场景。 - 循环边界控制:循环从
0到n-1,确保遍历数组全部n个元素,避免越界或遗漏。
验证测试代码
可以用这段代码快速验证函数功能:
#include <iostream> using namespace std; void check(int S[], int n) { for (int i = 0; i < n; ++i) { if (S[i] % 2 != 0) { S[i] += 5; } else { S[i] += 10; } } } int main() { int arr[] = {1, 2, 3, 4, -5, -6}; int len = sizeof(arr) / sizeof(arr[0]); check(arr, len); for (int num : arr) { cout << num << " "; } // 预期输出:6 12 8 14 0 4 return 0; }
内容的提问来源于stack exchange,提问作者jaris
相关产品推荐
相关产品推荐

