输一个整数依次取出偶数组成新数C语言
时间: 2024-09-20 08:14:34 浏览: 49
在C语言中,如果你想从输入的整数中提取所有的偶数并将它们组成一个新的数,你可以先遍历输入的数,检查每个数字是否是偶数,如果是,则添加到新的整数中。以下是一个简单的示例程序:
```c
#include <stdio.h>
// 将输入的整数转换为二进制字符串便于操作
void binaryToDecimal(int number, char* binary) {
int index = sizeof(binary) - 2;
while (number > 0) {
binary[index] = '0' + (number % 2);
number /= 2;
index--;
}
binary[index+1] = '\0'; // 添加结束符
}
// 主函数,读取输入并提取偶数
int extractEvenFromNumber(int input) {
char binary[32]; // 短暂存储二进制形式
binaryToDecimal(input, binary);
int decimalResult = 0;
for (int i = 0; i < strlen(binary); i++) {
if (binary[i] == '0') { // 当前位是偶数,加到结果里
decimalResult *= 2;
decimalResult += 1;
}
}
return decimalResult;
}
int main() {
int input;
printf("请输入一个整数:");
scanf("%d", &input);
int evenResult = extractEvenFromNumber(input);
printf("从输入的数中提取的偶数组成的新数为:%d\n", evenResult);
return 0;
}
```
此代码首先将输入的整数转换为二进制,然后逐位检查,如果某一位是0(在二进制表示下,偶数),就将其对应的1转换为10(即2的幂次方),最后得到的结果就是由输入的偶数组成的新数。
阅读全文