c语言一个整数奇数位上是奇数,偶数位上是偶数的数成为好数,求好数代码
时间: 2024-10-23 21:16:25 浏览: 38
c代码-10.键盘输入一个正整数s,从低位开始取出s中奇数位上的数作为高位,依次构成一个新数输出。例如,输入"54321",输出"135"。
5星 · 资源好评率100%
在C语言中,我们可以定义一个名为`goodNumber`的函数,来判断给定的整数是否符合条件。首先,我们需要将输入的数字转换为字符串,然后逐位检查每个字符(在ASCII码表中,字符0对应数字0,'1'对应1,以此类推)。以下是简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
// 判断字符是否为数字
bool isDigit(char c) {
return ('0' <= c && c <= '9');
}
// 检查整数的好数性质
bool isGoodNumber(int num) {
char strNum[100]; // 存储数字字符串
sprintf(strNum, "%d", num);
int oddPositionEven = 1, evenPositionOdd = 0;
int position = 0;
for (char c : strNum) {
if (isDigit(c)) {
if (position % 2 == 0) { // 偶数位置
if ((c - '0') % 2 != 0) { // 如果该位置数字是奇数
oddPositionEven = 0; // 现在不是好数了
break;
} else {
oddPositionEven = 1; // 仍是好数,偶数位置偶数
}
} else { // 奇数位置
if ((c - '0') % 2 == 0) { // 如果该位置数字是偶数
evenPositionOdd = 0; // 现在不是好数了
break;
} else {
evenPositionOdd = 1; // 仍是好数,奇数位置奇数
}
}
position++;
}
}
return oddPositionEven && evenPositionOdd;
}
int main() {
int number;
printf("请输入一个整数:");
scanf("%d", &number);
if (isGoodNumber(number)) {
printf("%d 是一个好数。\n", number);
} else {
printf("%d 不是一个好数。\n", number);
}
return 0;
}
```
阅读全文