编写函数,功能为返回一个整数的奇数位之和,以及偶数位之和。函数模块名称为sum。 例如整数12345,函数调用后分别返回奇数位之和9,以及偶数位之和6给主调函数。 奇偶位计数从最低位开始向高位计算,例如整数123456中,2/4/6是奇数位,1/3/5是偶数位 接口分析提示,可以设计两种类型的函数接口(自己选定一种即可): 1、一种是函数返回值返回其中的一个和,另外一个值增加一个指针参数传回给主调函数。 2、另一种是函数无返回值void,在原有参数基础上增加两个指针参数,分别传回奇数位之和以及偶数位之和。
时间: 2023-06-15 12:06:23 浏览: 194
方案一:函数返回值返回其中一个和,另外一个值增加一个指针参数传回给主调函数。
```c
int sum(int num, int *oddSum, int *evenSum) {
int odd = 0, even = 0, digit, isOdd = 1;
while (num > 0) {
digit = num % 10;
if (isOdd) {
odd += digit;
} else {
even += digit;
}
isOdd = !isOdd;
num /= 10;
}
*oddSum = odd;
*evenSum = even;
return odd;
}
```
方案二:函数无返回值void,在原有参数基础上增加两个指针参数,分别传回奇数位之和以及偶数位之和。
```c
void sum(int num, int *oddSum, int *evenSum) {
int odd = 0, even = 0, digit, isOdd = 1;
while (num > 0) {
digit = num % 10;
if (isOdd) {
odd += digit;
} else {
even += digit;
}
isOdd = !isOdd;
num /= 10;
}
*oddSum = odd;
*evenSum = even;
}
```
阅读全文