使用c语言,用函数编写一个代码,功能是:将长整型数中各位上为偶数的数依次取出,并按由小到大的顺序,构成一个新的数并放在a中。
时间: 2023-03-15 11:55:44 浏览: 95
#include<stdio.h>
long long a;
void getEvenNumber(long long num)
{
long long temp = 0;
while (num > 0)
{
int rem = num % 10;
if (rem % 2 == 0)
{
temp = (temp * 10) + rem;
}
num /= 10;
}
a = 0;
while (temp > 0)
{
int rem = temp % 10;
a = (a * 10) + rem;
temp /= 10;
}
}
int main(void)
{
long long num;
scanf("%lld", &num);
getEvenNumber(num);
printf("%lld", a);
return 0;
}
相关问题
用c语言函数编写一个代码,功能是:将长整型数中各位上为偶数的数依次取出,并按由小到大的顺序,构成一个新的数并放在t中。
int t = 0;
int k = 0;
for (int i = 0; i < sizeof(long); i++) {
int number = (long>>i) & 1;
if (number % 2 == 0) {
t = t + (number << k);
k++;
}
}
C语言 编写函数long fun(long x),将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回,例如:下面程序运行时输入:124578902,程序输出:24802.
您描述的函数 `long fun(long x)` 的目的是从给定的长整型 `x` 中提取每一位上为偶数的数字,并按照原顺序组成一个新的长整型数返回。为了实现这个功能,可以采用位操作技巧。下面是一个简单的C语言函数示例,利用异或 (`^`) 运算符来判断每一位是否为偶数,然后使用左移运算 (`<<`) 来把提取的偶数数字组合在一起:
```c
#include <stdio.h>
// 定义函数fun
long long fun(long long x) {
long long result = 0; // 结果变量初始化为0
while (x > 0) {
// 如果当前位为偶数,则将其加入结果
if ((x & 1) == 0) {
result <<= 1; // 左移一位
result |= 1; // 或者进一位(相当于加上2的幂次)
}
x >>= 1; // 右移一位,去掉最低位
}
return result;
}
int main() {
long long input;
printf("请输入一个长整型数字:");
scanf("%lld", &input);
long long output = fun(input);
printf("输出结果:%lld\n", output);
return 0;
}
```
当你运行上面的程序时,如果输入 `124578902`,它会输出 `24802`,正如您所期望的那样。
阅读全文