这道C语言题得主要功能是将形参n中各位上为偶数的数取出,并按原来从高到低位的顺序组成一个新的数,并

这道C语言题得主要功能是将形参n中各位上为偶数的数取出,并按原来从高到低位的顺序组成一个新的数,并作为函数值返回!但是呢,有三个错误的地方,求大神解答,错误的地方都给出来了,就是不会改……

#include <stdio.h>
unsigned long fun(unsigned long n)
{
unsigned long x=0,s,i;
int t;
s=n;
i=1;//因为个位数是乘于1,所以i=1
while(s>0)//当s>0的时候才继续运算
{
t=s%10;
if(t%2==0)
{
x=x+t*i;
i=i*10;//每增加一位,都要乘于10,而不是加上10,i=i*10
}
s=s/10;
}
return x;
}
int main()
{
printf("%d\n",fun(234690));
return 0;
}

追问

非常感谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-06
第一个i=10;第二个s<10;第三个删去i=i*10。追答

s应该是>0

追问

不对

楼上对了,但是我如果输入27638496理论应该输出26846但是他输出6846,,2就没了,啥意思?

第2个回答  2014-12-06
i 初始化为1
while条件为s>0
i=i+10改为i=i×10追问

我之前还有一道题呢,能帮忙解决一下吗?

说下原理

追答

本回答被提问者采纳
第3个回答  2014-12-06
不是低位到高位吗?
相似回答