用c语言写判断一个数的所有数位之和为偶数且至少包含一个奇数的函数
时间: 2024-10-13 20:16:29 浏览: 26
在C语言中,你可以创建一个函数来检查一个整数是否满足条件,即所有数字之和为偶数并且至少有一个奇数位。这里我们假设输入的是非负整数。以下是可能的实现方法:
```c
#include <stdbool.h>
// 定义一个辅助函数,检查给定的一位数是否为奇数
bool is_odd(int digit) {
return digit % 2 != 0;
}
// 主函数,接受一个整数作为输入
bool has_even_sum_with_odd_digit(int num) {
int sum = 0; // 初始化总和为零
bool has_odd = false; // 标记是否有奇数位
while (num > 0) { // 遍历每一位
int digit = num % 10; // 取出最后一位
sum += digit;
if (is_odd(digit)) { // 如果有奇数位
has_odd = true;
}
num /= 10; // 移除最后一位
}
// 判断总和是否为偶数且至少有一个奇数位
return sum % 2 == 0 && has_odd;
}
// 示例用法
int main() {
int input = 12345;
if (has_even_sum_with_odd_digit(input)) {
printf("Number meets the criteria.\n");
} else {
printf("Number does not meet the criteria.\n");
}
return 0;
}
```
这个函数首先遍历输入的每一个数字,计算它们的和,并标记遇到的第一个奇数位。然后它检查总和是否为偶数,如果同时满足这两个条件,则返回`true`,否则返回`false`。
阅读全文