判断一个正整数是否奇偶交替,用c语言
时间: 2024-11-15 15:20:36 浏览: 6
从键盘输入一个正整数判断奇偶性-C语言选择结构程序设计
判断一个正整数的每一位数字是否按照奇偶交替的规律排列,可以使用循环遍历数字每一位,并检查当前位与前一位的奇偶性是否相反。以下是用C语言的一个简单算法:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_odd_even_sequence(int num) {
if (num <= 0) {
return false; // 非正整数不是奇偶交替序列
}
bool prev_odd = num % 2 != 0; // 初始奇数状态
int digit;
while (num > 0) {
digit = num % 10;
num /= 10;
if (prev_odd && !digit % 2 || !prev_odd && digit % 2) {
return false; // 相邻两位数字奇偶性不符
}
prev_odd = digit % 2; // 更新奇偶状态
}
return true; // 如果所有位置都满足奇偶交替,则返回true
}
int main() {
int test_number = 1295846; // 测试案例
if (is_odd_even_sequence(test_number)) {
printf("%d 是奇偶交替序列.\n", test_number);
} else {
printf("%d 不是奇偶交替序列.\n", test_number);
}
return 0;
}
```
这个程序首先检查输入是否非正整数,然后用`prev_odd`变量记录上一次数字的奇偶性,每次循环取下一个数字并更新奇偶状态,如果相邻的两个数字奇偶性不一致就返回`false`。
阅读全文