新浪博客

(C语言)去偶数的方法

2013-03-28 13:38阅读:
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去
,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回
所指变量。
例如,输入一个数:27638496,新的数:为739
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
void fun(unsigned long *n)
{ unsig
ned long x=0, i; int t;
i=1;
while(*n)

{ t=*n % __1__;

if(t%2!= __2__)
{ x=x+t*i; i=i*10; }
*n =*n /10;
}

*n=__3__;
}
main()
{ unsigned long n=-1;
while(n>99999999||n<0)
{ printf('Please input(0
fun(&n);
printf('The result is: %ld',n);
}
解题思路:
*n/10,只剩个位,即从最右位开始进行奇数、偶数判断,奇数则保留,并设置一个i=i*10使下次接收到奇数时,放在上次奇数的更高一位上,保留奇数用x实现。遇到偶数则直接跳过,x中便不会有偶数的信息了。
第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10
第二处:判断是否是奇数,所以应填:0
第三处:最后通形参n来返回新数x,所以应填:x

我的更多文章

下载客户端阅读体验更佳

APP专享