**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
4天前关闭。
Improve this question
每当我使用用户定义函数来获取像5,623这样的输入值时,将十进制的否转换为二进制的否,我得到了错误的输出,但是当我运行代码而不使用用户定义函数时,我得到了正确的输出。
here my code如果我输入5,我得到的输出是00110110
1条答案
按热度按时间rwqw0loc1#
原因是
scanf
转换说明符%c
读取的是字符,而不是数字('5'代替5)。'5'是字符文字,整型,with the value 53,因为您的系统使用ASCII标准进行字符编码。53将存储在n
中。53的二进制表示为110101(您是否犯了复制错误?):32 + 16 + 4 + 1正如Barmar在评论中所说,如果你想读取一个数字,你应该使用像
%d
或%u
这样的转换说明符。- ).