注册 登录
编程论坛 C语言论坛

帮我分析一下这道题?好人一生平安

飞天大烧卖 发布于 2020-03-26 11:54, 1625 次点击
1、以下程序的功能是将整型数据n转换成二进制数据,程序中有两处错误请改正:

void _conversion_2(int n)

{

zheng: if(n>1)

{

_conversion_2((n&(1))>>1);

printf("%d",n&1);

}

else if(n==0||n==1)

printf("%d",n&1);

else

{

n=n+1;

n=~n;

printf("-");

goto zheng;

}

}

错误1:__________________.

错误2:__________________.
4 回复
#2
叶纤2020-03-26 12:53
goto语句是什么?第一次见
#3
rjsp2020-03-26 13:29
_conversion_2((n&(1))>>1); 那一坨&1应该去掉,即 _conversion_2( n>>1 );

n=n+1; n=~n; 错误,没法改,无论是将两句颠倒,还是+1改-1,都无法处理int溢出的情况
#4
forever742020-03-26 21:31
不要被某些出题人带到沟里去,你啥时候见到一串二进制前边带负号来着?
用标准的风格,在非十进制前面加负号得算未定义行为吧。
#5
飞天大烧卖2020-03-28 11:41
回复 3楼 rjsp
要实现的话只能加判断处理溢出了
1