liujiawen 发表于 2023-11-16 16:46:29

请问一下为啥是11啊

就圈蓝色的地方为什么不能直接打%u而是要打成%11u

Mike_python小 发表于 2023-11-16 16:47:10

抱歉,我之前的回答有误。在你提供的代码中,%11u并不是必须的,而是用来对输出进行格式化的方式之一。

在这段代码中,使用printf("%11u", num)的目的是为了使用最少11个字符的宽度输出无符号整数。如果要输出的数字不够11位宽,会在左边填充空格,以达到指定的宽度。

但在这段代码中,printf("%u", num)也可以实现相同的功能,因为默认情况下,printf函数会根据输出的数字自动调整宽度。

所以,printf("%u", num)和printf("%11u", num)的结果是相同的,都是按照十进制无符号整数的形式输出变量num的值。

感谢你的指正,希望这次的解答更准确了解释了问题。如果你还有其他问题,请随时提问。

isdkz 发表于 2023-11-16 16:51:37

这是因为在C语言中,%u用于格式化输出无符号整数。而%11u表示输出一个至少宽度为11的无符号整数。当你使用%u时,它只会输出实际数字,不会考虑宽度。但是当你使用%11u时,它会输出至少宽度为11的数字,如果实际数字不足11位,会在前面补空格。因此,%11u会输出一个至少宽度为11的无符号整数,而不是直接输出实际数字。

zhangjinxuan 发表于 2023-11-16 16:55:14

unsigned long long 类型请使用 llu 的格式输出,注意两个字母 l,不是数字 1

歌者文明清理员 发表于 2023-11-16 17:30:44

unsigned (int) = %u
unsigned long long = %ull


4# 正解

liujiawen 发表于 2023-11-16 17:47:02

Mike_python小 发表于 2023-11-16 16:47
抱歉,我之前的回答有误。在你提供的代码中,%11u并不是必须的,而是用来对输出进行格式化的方式之一。

在 ...

谢谢您
页: [1]
查看完整版本: 请问一下为啥是11啊