【以下回答由 GPT 生成】
问题标题: %1d和%d有什么区别呢?
%1d和%d在C语言中的区别是:
%1d:表示将输入的整数只读取其最低位的数字,并且按照一位十进制整数进行输出。%d:表示将输入的整数按照十进制整数进行输出。
将%1d换成%d后输出的结果会乱码的原因是:
代码中使用了scanf函数来按照一定格式读取输入的数据。当使用%1d时,scanf函数会将输入的整数的最低位的数字读取并赋值给相应的变量,而丢弃其他位的数字。而当使用%d时,scanf函数会将输入的整数作为一个整体读取,并赋值给相应的变量。所以,当使用%d时,如果输入的整数的位数超过了变量的大小,就会导致变量溢出,进而导致输出结果的乱码。
【相关推荐】
这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7761527除此之外, 这篇博客: 小朋友学C语言(43):浮点数的深入分析中的 例14:求规约数0 00000001 00000000000000000000000所表示的十进制数 部分也许能够解决你的问题。如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^