C语言编写函数fun,其功能是:输入一个正整数,将其每一位上为偶数的数取出重新构成一个新数并输出。主函数负责输入输出,如输入87653142,则输出8642。(main函数fun函数)
时间: 2024-03-03 22:51:11 浏览: 122
好的,这是一道简单的编程题目,以下是 C 语言的实现代码:
```
#include <stdio.h>
int fun(int n) {
int new_num = 0; // 重新构成的新数
int base = 1; // 用于计算每一位的权值,初始化为 1
while (n > 0) {
int digit = n % 10; // 取出当前位的数字
if (digit % 2 == 0) {
new_num += digit * base; // 如果是偶数,加入到新数中
base *= 10; // 更新权值
}
n /= 10; // 继续处理下一位
}
return new_num;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
int new_num = fun(n);
printf("构成的新数为:%d\n", new_num);
return 0;
}
```
函数 `fun` 的实现思路是:从低位到高位依次取出每一位的数字,如果是偶数就加入到新数中,最后返回新数。在主函数中,先输入一个正整数,然后调用 `fun` 函数得到新数,并输出结果。注意,为了方便起见,这里假设输入的正整数中至少有一个偶数位。
相关问题
C语言写出有趣的函数。它的功能是输入一个正整数,取出每个比特上的偶数,重构一个新的数字并输出。主要功能负责输入和输出。如果输入87653142,则输出8642。(主功能趣味功能)
好的,下面是一个有趣的 C 语言函数实现你的要求:
```c
#include <stdio.h>
int fun(int num) {
int result = 0, bit = 1;
while (num > 0) {
int digit = num % 10;
if (digit % 2 == 0) {
result += digit * bit;
bit *= 10;
}
num /= 10;
}
return result;
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("取出每个比特上的偶数重构的新数字为:%d\n", fun(num));
return 0;
}
```
函数 `fun` 的作用是将输入的正整数取出每个比特上的偶数,重构一个新的数字并返回。具体实现过程是:使用 `while` 循环遍历输入的数字的每一位,如果该位是偶数,则将该位数字乘以一个位数因子 `bit` 并加到结果 `result` 中,同时将位数因子 `bit` 乘以 10。最后返回结果 `result`。
在主函数中,首先接收输入的正整数,然后调用函数 `fun` 并将结果输出。
希望这个有趣的函数能够帮助到你!
c语言实现:实验六(2016春刘秉权C语言课):编写函数void fun(int x, int *pp, int *n),它的功能是:求出x的偶数因子,并按从小到大的顺序存放在pp所指的数组中,这些因子的个数通过形参n返回。如,若x中的值为24,则有6个数符合要求,它们是2、4、6、8、12、24。主函数中输入一个小于等于1000的正整数,调用fun函数之后按顺序输出该正整数的所有偶数因子。 输入输出形式如: Input number:512 2 4 8 16 32 64 128 256 512 最后以回车结束。
以下是实现该功能的代码:
```c
#include <stdio.h>
void fun(int x, int *pp, int *n) {
int i;
*n = 0;
for (i = 2; i <= x; i += 2) {
if (x % i == 0) {
pp[*n] = i;
(*n)++;
}
}
}
int main() {
int x, pp[1000], n, i;
printf("Input number:");
scanf("%d", &x);
fun(x, pp, &n);
for (i = 0; i < n; i++) {
printf("%d ", pp[i]);
}
printf("\n");
return 0;
}
```
该程序首先定义了一个名为`fun`的函数,用于求出一个整数的所有偶数因子,并按从小到大的顺序存放在一个数组中。该函数的参数包括一个整数`x`,一个指向数组的指针`pp`和一个指向整数的指针`n`。其中,`pp`指向的数组用于存放偶数因子,`n`用于返回偶数因子的个数。函数内部使用循环遍历从2到`x`之间的所有偶数,如果该偶数是`x`的因子,则将其存放在数组`pp`中,并将`n`的值加1。
在`main`函数中,先读入一个整数`x`,然后调用`fun`函数得到`x`的所有偶数因子,并按顺序输出它们。程序最后需要输出一个回车符,以满足题目要求。
阅读全文