编写一个C语言程序,将一个长整形数的每一位数上的偶数依次取出来构成一个新的数,其高位仍在高位低位仍在低位。
时间: 2024-11-17 13:30:29 浏览: 26
为了编写一个C语言程序,实现这个功能,我们可以创建一个函数,该函数接受一个长整型输入并返回一个新的长整型,其中包含原始数值的所有偶位。这里是一个简单的实现示例:
```c
#include <stdio.h>
#include <string.h>
// 定义一个辅助函数,检查给定的字符是否为数字的偶数
int is_even_digit(char c) {
return c == '0' || (c >= '2' && c <= '8');
}
// 主函数:提取并构造新的长整数
long long extract_even_digits(long long num) {
char digits[20]; // 用于存放每一位数字,假设32位长整型最大有20位
int len = snprintf(digits, sizeof(digits), "%lld", num);
long long result = 0;
for (int i = 0; i < len; i++) {
if (is_even_digit(digits[i])) {
result *= 10;
result += digits[i] - '0';
}
}
return result;
}
int main() {
long long input;
printf("请输入一个长整数:");
scanf("%lld", &input);
long long new_num = extract_even_digits(input);
printf("新数为:%lld\n", new_num);
return 0;
}
```
在这个程序中,我们首先定义了一个辅助函数`is_even_digit`检查数字字符是否为偶数,然后在`extract_even_digits`函数中遍历输入的每一位数字,如果它是偶数,我们就将其添加到结果上。最后,在主函数中获取用户的输入并打印结果。
阅读全文