编程论坛
注册
登录
编程论坛
→
C语言论坛
初来乍到,向各路大神致敬!
想有钱有钱
发布于 2020-12-14 23:17, 1030 次点击
现在有个问题,希望大神们帮帮忙。江湖救急啊,救救孩子吧。
功能:从低位开始取出长整型变量s奇数位上的数,依次构成一个新数放在t中。
例如:当s中的数为:7654321时,t中的数为:1357。
3 回复
#2
rjsp
2020-12-15 09:45
长整型变量
那也就是允许是负数了?
程序代码:
long
foo(
long
n )
{
//
先得转化成无符号类型
unsigned
long
t = n<
0
?
0ul
-(
unsigned
long
)n : n;
long
result =
0
;
for
( ; t; t/=
100
)
result = result*
10
+ t%
10
;
return
result;
}
#include
<assert.h>
int
main(
void
)
{
assert( foo(
7654321
) ==
1357
);
assert( foo(-
7654321
) ==
1357
);
}
#3
想有钱有钱
2020-12-27 22:14
谢谢大神,我看懂了,就是0ul-(unsigned long)n还没学过,我可以用判断语句吗?if(n<0)t=-n;else t=n;
#4
想有钱有钱
2020-12-27 22:19
回复 2楼 rjsp
抱歉这么迟回复你,大神,我注册之后一直没有再登录这个论坛,刚刚才看到你的解答,太感谢了。
1