控制流和循环 : Why the output of the program is 0 and not 000?

标签 c

#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 和标志 0d 说明符表示打印一个 int。字段宽度 3 表示该值将打印在至少 3 个字符宽的字段中。 0 标志意味着要打印的字段中的任何额外空格都在左侧用 0 填充。

任何不输出此内容的编译器都是不合格的。

关于控制流和循环 : Why the output of the program is 0 and not 000?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50721220/

相关文章:

c - do while 循环中的字符串

c - C 中的 NetBeans 退出错误代码值 -1.073.741.819

c - matlab中C数组的思想

c - C函数指针问题中的最少帐单程序

C 到 Rust 并在 Rust 端返回 "pointer being freed was not allocated"

c - 尽管RAW套接字和HDRINCL,IP源地址仍然由系统填充

c - gcc 中的 -ffreestanding 选项是什么?

c - GCC 链接器会检查声明和定义的兼容性吗?

c++ - 如何在我的程序中找到 "const char* + int"表达式

c - 结构C编程需要解释,看不懂代码