#include <stdio.h>
void main()
{
int i = 0, k;
if (i == 0)
goto label;
for (k = 0;k < 3; k++)
{
printf("hi\n");
label: k = printf("%03d", i);
}
}
谁能解释一下为什么输出是 0 而不是 000?当我在 devc++ 中运行该程序时,它给出输出 000。但在大多数网站中,我发现正确答案是 0。
最佳答案
正确的输出是000
。
格式说明符 %03d
包含转换说明符 d
、字段宽度 3 和标志 0
。 d
说明符表示打印一个 int
。字段宽度 3 表示该值将打印在至少 3 个字符宽的字段中。 0
标志意味着要打印的字段中的任何额外空格都在左侧用 0 填充。
任何不输出此内容的编译器都是不合格的。
关于控制流和循环 : Why the output of the program is 0 and not 000?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50721220/